最近跟着另一个大数据团队学习,他们用到了Git,之前我只用过SVN,所以现在来简单的学习下Git。
Git历史
简介
Linux之父研发。。。感觉不重要了。
和SVN比较
Git | SVN |
---|---|
分布式 | 集中式 |
每个历史版本存储完整的文件 | 存储文件差异 |
离线完成大部分操作 | 反之 |
更优雅的分支和合并实现 | 反之 |
更强的撤销修改和修改历史版本的能力 | 反之 |
速度更快,效率更高 | 反之 |
为何要使用Git
紧跟GitHub,开源的世界,关键Git比SVN好用,强大。
关于版本控制
1. 本地版本控制系统
最流行的一种叫RCS,工作原理是在硬盘上保存补丁集。
2. 集中化的版本控制系统
用来使不同系统上的开发者协作工作。这类系统,诸如CVS、Subversion以及Perforced等,都有一个单一的集中管理服务器,保存所有的文件的修订版本。
这种情况下如果中央服务器出现故障,那么就无法协同工作,大家都会停滞。
3. 分布式版本控制系统
像Git、Mercurial、Bazzer等。客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。
这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。更进一步,许多这类系统都可以指定和若干不同的远端代码仓库进行交互。籍此,你就可以在同一个项目中,分别和不同工作小组的人相互协作。你可以根据需要设定不同的协作流程,比如层次模型式的工作流,而这在以前的集中式系统中是无法实现的。