git与svn比较
git与svn比较
Git与你熟悉的大部分版本控制系统的差别是很大的。也许你熟悉Subversion、CVS、Perforce、Mercurial 等等,他们使用 “增量文件系统” (Delta Storage systems), 就是说它们存储每次提交(commit)之间的差异。Git正好与之相反,它会把你的每次提交的文件的全部内容(snapshot)都会记录下来。这会是在使用Git时的一个很重要的理念。
最近整个技术社区都在讨论Git。很多人都推崇Git,说它是多么多么的牛逼,如果你还不从 SVN或者CVS迁移到就会被淘汰云云。我并不同意这个观点。我承认Git的设计比SVN要好,但是真的好到让你马上不顾一切的迁移所有的SVN代码库到 Git吗?我看来看去,Git真的比SVN强的地方就两点。
![](http://images0.cnblogs.com/blog/385857/201303/23004737-78a09cc338c04511a4509a59e3884fd8.png)
- 分布式的系统或者说分布式的代码库
项目的每一个参与者都有完整的代码库和版本树。所以你基本上不可能丢失任何代码。 - 不需要随时都连接中心库。
我们可以在任何地点(在上班的地铁上)提交自己的代码和查看代码版本 - 你的commit不影响别人,别的的commit也不会影响你。
svn中你需要经常性的提交,提交可能会产生冲突。因为每个人都是向中心库提交的,你提交时可能中心库版本比你的新。 - 提交代码更快速
因为你有完整的代码库在你本地,所以提交代码是非常快速的。而且Git在存储上面也比SVN高效,它允许小量数据被来回传输。 - 其分支的使用比svn更灵活
- 如进行试验性的代码开发,
- 同事间的code review .
所以,如果你常常觉得更新或者提交代码太慢,或者你的SVN服务器没有备份机制,那么你也许应该考虑迁移到Git,否则没有必要。当然,针对新项目,使用Git将是明智的选择。