学习日志之software engneering(2)——git

git是一个版本管理工具,用于管理代码和工程,尤其在多人合作的时候需要进行代码的管理与开发日志的编写,达到责任分明过程可视的目的。用于这一目的的系统称为configuration managment system(CMS)

  1. Local CMS
  2. Centralized CMS
  3. Distributed CMS(git属于这一类,对于这一类而言每一台参与工程的电脑上都有一个完整的repository,其可以完成所有的对repository的操作,另外在远程端也有repository。在本地已经更新了repository之后上传到远程端的repository操作就是直接给从本地复制一个到远程端,例如github这样的网站,来和他人进行分享)

在repository中保存的主要有三个阶段:

  1. commit
  2. modified
  3. staged

当工程被更改之后,就会编程modified状态,然后需要对齐进行标记,进入到staged状态,直到程序员commit之后才会加载到repository的mater分支下被正式使用,在加入之后,即使是本地文件被不小心删除,只要repository中存在目录那么就可以恢复文件。

为了完成这些工作,就会划分出三个不同的存储空间:working directory(我们自己电脑上能看到的文件夹空间),stage area(改变文件后但是还没有确认的文件存放的空间,又称为index stage),git directory(已经确认好的文件存放的空间,存到了repository中)。

三者与远程端的关系如下图所示:

学习日志之software engneering(2)——git

上面包含了git的一些基本操作,这些在安装了git后都可以在命令窗口输入进行相应操作。

上一篇:Spark 宽依赖与窄依赖


下一篇:介绍2