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强的地方就两点。


 
  1. 分布式的系统或者说分布式的代码库
    项目的每一个参与者都有完整的代码库和版本树。所以你基本上不可能丢失任何代码。
    1. 不需要随时都连接中心库。
      我们可以在任何地点(在上班的地铁上)提交自己的代码和查看代码版本
    2. 你的commit不影响别人,别的的commit也不会影响你。
      svn中你需要经常性的提交,提交可能会产生冲突。因为每个人都是向中心库提交的,你提交时可能中心库版本比你的新。
    3.  提交代码更快速
      因为你有完整的代码库在你本地,所以提交代码是非常快速的。而且Git在存储上面也比SVN高效,它允许小量数据被来回传输。
  2. 其分支的使用比svn更灵活
    1. 如进行试验性的代码开发,
    2. 同事间的code review .
所以,如果你常常觉得更新或者提交代码太慢,或者你的SVN服务器没有备份机制,那么你也许应该考虑迁移到Git,否则没有必要。当然,针对新项目,使用Git将是明智的选择。
 




posted @ 2013-03-23 00:46  man1m  阅读(352)  评论(0编辑  收藏  举报