为什么说 Git 比 SVN 更好
展开全部
GIT是分布式源代码管理,SVN称之为集中式管理。
所谓集中管理,就是所有人本地仅有一组文件,即改动后的文件,以及每个文件的改动记录(存放于隐藏的svn目录中),大家把改动后的文件,提交到同一个网络中心服务器上去。在服务器上有完整的代码历史记录。
而分布式管理最大的不同就是,本来网络中心服务器才有的完整代码历史记录,现在可以放在每个人自己的本地了。这样,当你使用GIT管理代码时,不要求一定有网络连接,你可以在本本地提交代码,查看历史记录,执行回滚等操作。而需要合并多人代码的时候,每个人本地的代码记录,再用push的方式在服务器上汇总;大家需要更新的时候,从服务器上pull下来最新代码库(而不仅是一个revision)。也就是说,源代码管理分布到每个人的单机,每个人处理自己单机的一些更新、回滚、自我合并等功能,然后在服务器上进行一个综合合并操作。集中式管理过分依赖服务器一次合并的情况得到了缓解。
分布式管理需要更复杂的逻辑来处理,但是,基于本来就是多人合作的前提,大家也可以在管理中各负其责,比如,指定一个人单独处理服务器合并,其他人只做好自己的本地改动即可,而不是集中管理时,一提交,不论是谁都需要做好合并代码的准备。
分布式管理更多的使用分支的概念协同工作。每个人的代码都是一个单独的分支,服务器合并代码的时候,分支产生合并,并且将改动再拉回到自己的原本分支;对于一些多版本要求的代码,控制分支的合并内容,可以很好的把握并行多个版本的开发工作。
总之,以GIT为代表的分布式源代码管理更加的系统、方便、甚至更容易迁移(因为人人都有单独的完整代码历史记录,不完全依赖服务器)。但是正因为多了这许多细节,GIT理解起来要比SVN复杂很多,需要悉心体会,门槛比较高。一旦熟悉起来,就再也不想用SVN了。
所谓集中管理,就是所有人本地仅有一组文件,即改动后的文件,以及每个文件的改动记录(存放于隐藏的svn目录中),大家把改动后的文件,提交到同一个网络中心服务器上去。在服务器上有完整的代码历史记录。
而分布式管理最大的不同就是,本来网络中心服务器才有的完整代码历史记录,现在可以放在每个人自己的本地了。这样,当你使用GIT管理代码时,不要求一定有网络连接,你可以在本本地提交代码,查看历史记录,执行回滚等操作。而需要合并多人代码的时候,每个人本地的代码记录,再用push的方式在服务器上汇总;大家需要更新的时候,从服务器上pull下来最新代码库(而不仅是一个revision)。也就是说,源代码管理分布到每个人的单机,每个人处理自己单机的一些更新、回滚、自我合并等功能,然后在服务器上进行一个综合合并操作。集中式管理过分依赖服务器一次合并的情况得到了缓解。
分布式管理需要更复杂的逻辑来处理,但是,基于本来就是多人合作的前提,大家也可以在管理中各负其责,比如,指定一个人单独处理服务器合并,其他人只做好自己的本地改动即可,而不是集中管理时,一提交,不论是谁都需要做好合并代码的准备。
分布式管理更多的使用分支的概念协同工作。每个人的代码都是一个单独的分支,服务器合并代码的时候,分支产生合并,并且将改动再拉回到自己的原本分支;对于一些多版本要求的代码,控制分支的合并内容,可以很好的把握并行多个版本的开发工作。
总之,以GIT为代表的分布式源代码管理更加的系统、方便、甚至更容易迁移(因为人人都有单独的完整代码历史记录,不完全依赖服务器)。但是正因为多了这许多细节,GIT理解起来要比SVN复杂很多,需要悉心体会,门槛比较高。一旦熟悉起来,就再也不想用SVN了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询