主题
- why do we use git?
- why does git have these advantages?
- how to use it?
why do we use git?
1.版本控制历史简述
-
- 手工备份磁盘文件……
- 单个文件版本控制,文件差异算法(SCCS,RCS)
- CVS版本控制系统,版本控制系统爆发
- SVN - - 集中式版本控制系统集大成者
- 分布式版本控制系统GIT
- 未来……
2.git主要优势
-
- 分布式,本地具有完整的版本库,离线版本控制
- 高效的分支与合并策略
- 可靠性,管理linux内核等超大规模项目
- 轻量级
- 开源
- 等
why does git have these advantages?
由于git采用分布式策略,完整复制服务器中的版本信息。使得每个人都成为自己本地版本库的主人,令git许多操作成为本地操作从而提高效率,并且可以在与服务器网络不通的情况下同样能够进行版本管理,增加灵活性。
git与其他版本控制工具不同,git保存的是每次提交后的文件快照而不是文件差异,这使得git在分支管理中具有很大优势。
git分支管理简述:
git在每次提交的时候会产生一个提交对象(commit object)。这个提交对象中保存了一个指向提交文件快照的指针(tree对象,保存具体的文件信息),同时还保存了一个指向父对象的指针。这样git的每次提交动作相当于产生了一套新的指针,从而形成一套指针链。
在git分支系统中,新建分支其实相当于创建了一个可以移动的新的指针,指向所在的提交对象。而git的分支系统中还存在一个特殊指针HEAD,这个特殊指针指向的是当前所在分支。分支切换既相当于HEAD指针的指向转变和当前文件快照的转变。
大多数版本管理系统在分支上的处理都是将所有的项目文件都复制一遍,相较于git系统的指针操作效率低了不少。
参考资料:
https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-Git-%E7%AE%80%E5%8F%B2
该资料对git进行了详细的描写,包括git的常用操作和底层原理等。
how的部分后续整理