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.