Git是一个分布式的版本控制工具,如果想用github等版本控制系统,核心就是git,下面简单介绍一些git的基础原理,原文:http://git-scm.com/book/en/Getting-Started-Git-Basics。
Git不像传统的VCS将程序按文件存放管理(如下图),当有文件有改动时,下个version会将整个改动的file复制。这样的管理方式既费事,又占用大量冗余空间。
而Git存取方式,是将所有文件数据当前的状态保存为快照,只保存那些有修改的部分,而未修改的部分则在新的version中建立一个链接指向上一次修改后的部分。
这样做的好处是方便查看每个历史版本中修改的情况,而且还比较省空间。
Git的工作过程:
Git中所提交的程序分为三个状态:committed、modifiled、staged。committed表示对整个项目的修改已经提交,类似于已经生成一个新version的意思。modifiled表示正在对源程序进行改动的状态,表示你正在修改当前版本的代码。staged为对项目中某些文件的修改已完成,但是仍可能对其它file进行修改。Git中代码不同的状态导致了一个Gitthe Git directory, the working directory, and the staging area.
Git项目的工作流程如下:
1、在working directory修改文件
2、修改某个源文件后,stage它,系统则把它的snapshots加入到了staging area.
3、当你执行commit时,在staging area的文件的快照会被永久的提交到Git directory.