为什么Git 比SVN 更好
GIT是分布式源代码管理,SVN称之为集中式管理。
所谓集中管理,是指每个人本地只有一组文件,即更改过的文件,以及每个文件的更改记录(存放在隐藏的svn目录中)。大家把修改后的文件提交到同一个网络中心服务器上。服务器上有完整的代码历史记录。
分布式管理最大的区别在于,原来只能在网络中心服务器上获得的完整代码历史记录,现在可以放在每个人自己的本地区域。这样,当你使用GIT来管理代码时,就不需要有网络连接了。您可以在本地提交代码、查看历史记录、执行回滚等操作。当需要合并多人的代码时,通过推送的方式将每个人本地的代码记录汇总到服务器上;当每个人都需要更新时,从服务器拉取最新的代码库(而不仅仅是修订版)。换句话说,源代码管理是分布到每个人的单机上的。每个人处理自己单机的一些更新、回滚、自合并等功能,然后在服务器上进行综合合并操作。集中管理对一台服务器合并的过度依赖已经得到缓解。
分布式管理需要更复杂的逻辑来处理。但基于多人合作的前提下,每个人也可以在管理上各负其责。比如指定一个人单独处理服务器合并,其他人只能做自己的工作。本地改变就足够了,而不是集中管理。提交后,大家需要准备合并代码。
分布式管理采用分支机构的概念来协同工作。每个人的代码都是一个单独的分支。当服务器合并代码时,分支被合并,并且更改被拉回到原来的分支。对于一些需要多个版本的代码,控制分支的合并内容是有好处的。并行抓好多个版本的开发工作。
总之,以GIT为代表的分布式源代码管理更加系统、便捷,甚至更容易迁移(因为每个人都有独立的完整代码历史记录,不完全依赖于服务器)。但由于这些额外的细节,GIT 比SVN 理解起来要复杂得多,需要仔细理解,门槛也比较高。一旦你熟悉了它,你就再也不想使用SVN了。