Git简介
linus用C语言编写
分布式版本管理系统 SVN是集中式版本管理系统
速度快,适合大规模,跨地区多人协同开发
Git官网
https://git-scm.com/
Git生态
Git 分布式版本管理系统
Gitlab git私有仓库解决方案
Github git共有库解决方案
优点:
适合分布式开发,强调个体。
公共服务器压力和数据量都不会太大。
速度快、灵活。
任意两个开发者之间可以很容易的解决冲突。
离线工作。
缺点:
资料少(起码中文资料很少)。
学习周期相对而言比较长。
不符合常规思维。
代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
版本控制的演变
本地就是本地了,写过论文的同学都经历过想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去
集中式代表:CVS及SVN
分布式:首选GIT了 IBM的ClearCase人傻钱多 微软的VSS好像连微软自己都不好意思用
Git 和 SVN 之间区别
1.GIT是分布式的,SVN是集中式的
2.GIT把内容按元数据方式存储,而SVN是按文件
3.GIT分支和SVN的分支不同 分支在SVN中一点不特别,就是版本库中的另外的一个目录。如果你想知道是否合并了一个分支,你需要手工运行像这样的命令svn propget svn:mergeinfo,来确认代码是否被合并。然而,处理GIT的分支却是相当的简单和有趣。你可以从同一个工作目录下快速的在几个分支间切换。你很容易发现未被合并的分支,你能简单而快捷的合并这些文件。
4.GIT没有一个全局的版本号,而SVN有 我们可以使用GIT的SHA-1来唯一的标识一个代码快照。这个并不能完全的代替SVN里容易阅读的数字版本号。但,用途应该是相同的。
5.GIT的内容完整性要优于SVN GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。