为什么Git比Subversion更好?

为什么Git比Subversion更好?

我已经使用Subversion几年了,在使用SourceSafe之后,我只是喜欢Subversion。结合TortoiseSVN,我无法想象它会如何变得更好。

然而,越来越多的开发人员声称Subversion存在问题,我们应该转向新一代的分布式版本控制系统,例如Git

Git如何改进Subversion?


绝地无双
浏览 1004回答 3
3回答

慕神8447489

使用Git,您几乎可以在线下执行任何操作,因为每个人都有自己的存储库。在分支之间建立分支和合并非常容易。即使您没有项目的提交权限,您仍然可以在线拥有自己的存储库,并为您的修补程序发布“推送请求”。每个喜欢你的补丁的人都可以将他们纳入他们的项目,包括官方维护者。分叉一个项目,修改它,并继续合并来自HEAD分支的错误修正是微不足道的。Git适用于Linux内核开发人员。这意味着它真的很快(必须),并扩展到成千上万的贡献者。Git也使用更少的空间(Mozilla存储库的空间减少了30倍)。Git非常灵活,非常TIMTOWTDI(有不止一种方法可以做到)。您可以使用您想要的任何工作流程,Git将支持它。最后,有一个GitHub,一个托管你的Git存储库的好网站。Git的缺点:学习起来要困难得多,因为Git有更多的概念和更多的命令。修订版没有像subversion那样的版本号许多Git命令都很神秘,错误消息对用户不友好它缺乏一个好的GUI(如伟大的TortoiseSVN)

白猪掌柜的

其他答案在解释Git的核心功能方面做得很好(很棒)。但也有很多小方法让Git表现得更好,并有助于让我的生活更加健全。以下是一些小事:Git有一个'干净'命令。SVN迫切需要这个命令,考虑它会在磁盘上转储额外文件的频率。Git有'bisect'命令。这真好。SVN在每个文件夹中创建.svn目录(Git只创建一个 .git目录)。您编写的每个脚本以及您执行的每个grep都需要编写以忽略这些.svn目录。您还需要一个完整的命令(“svn export”)才能获得文件的合理副本。在SVN中,每个文件和文件夹可以来自不同的修订版或分支。起初,拥有这种自由听起来不错。但这实际上意味着有一百万种不同的方式让您的本地结账完全搞砸了。(例如,如果“svn switch”中途失败,或者输入的命令错误)。最糟糕的是:如果你遇到某些文件来自一个地方,而其中一些来自另一个地方的情况,“svn状态”会告诉你一切正常。您需要在每个文件/目录上执行“svn info”以发现奇怪的事情。如果“git status”告诉你事情是正常的,那么你可以相信事情是正常的。无论何时移动或删除某些内容,都必须告诉SVN。Git会想出来的。在Git中忽略语义更容易。如果忽略模式(例如* .pyc),则将忽略所有子目录。(但如果你真的想忽略一个目录的东西,你可以)。使用SVN,似乎没有简单的方法可以忽略所有子目录中的模式。涉及忽略文件的另一项。Git可以使用“私有”忽略设置(使用文件.git / info / exclude),这不会影响其他任何人。
打开App,查看更多内容
随时随地看视频慕课网APP