hug*_*eow 3 svn git version-control
众所周知,git在这些日子里非常受欢迎,因为它具有高效率,因为它具有本地计算机上的所有历史记录,并且可以在没有网络的情况下完成历史检索.也许对于外联网用户来说,网络问题并不重要,但是git也有其他类型的优势,比如轻量级分支(我仍然不确定它和svn的分支之间有什么区别,为什么git的分支很轻)?
我也知道很多人还在使用颠覆,为什么?如果git很好,他们可能会切换到git :)
所以,这里有人可以告诉我颠覆的一些优点吗?
还有一个问题:
is there anything which can be done by svn, but cannot be done with git?
Run Code Online (Sandbox Code Playgroud)
bah*_*rep 12
我建议你阅读文章 "我讨厌Git的10件事"和StackOverflow线程SVN vs Git.我也建议阅读这篇关于Subversion和Git的文档.
虽然其他人已经提到简单性(简单性是Apache Subversion的商标;) BTW)和明确的工作流程作为主要的Subversion优势我想添加一些其他重要的Apache Subversion 专业人员:
更好的IDE集成和GUI. 您可以在大多数IDE中看到内置的SVN客户端(或作为插件实现).其中一些提供了与IDE非常舒适和直观的版本控制集成.另一方面,除了众所周知的GitHub之外,Git没有良好的图形界面.IDE集成仍在进行中,但Git的hacky命令行性质并没有真正转化为GUI.您仍然必须使用命令行来处理比分支或拉/推更复杂的事情.
BTW,TortoiseSVN Subversion客户端可以被认为是适用于Windows的最佳版本控制客户端.
颠覆是集中的.换句话说,分布式系统不是所谓的"下一代VCS"(你好,Eric Sink等人),它们只是分布式的.分布式只是另一种非常适合开源项目的方法,例如Linux Kernel(Git是为Linux内核开发的,还记得吗?)但它有其自身的缺点.
完整修订历史.SVN维护目录,重命名和文件元数据的版本控制.Subversion就像一个具有不可变历史的时间机器.您可以随时使用机器返回,以检查您的日期在2009年1月3日的样子.
部分结帐.使用Subversion,您无需获得完整的存储库克隆.您可以签出项目的特定分支或主干.更重要的是,您可以获取存储库的任何子树.极大地减少了开始处理任务所需的流量.如果您已有工作副本,则切换到另一个分支或搁置是即时的(如果您有远程仓库的连接,显然).
锁定支持.Subversion支持lock-modify-unlock版本控制模型.Git没有.如果您有不可合并的文件,这可能非常有用.你好gamedev!:)
简单.
诸如"什么是遥控器?","为什么要修改消息?","这个改变什么东西?"之类的问题.有必要了解Git提供的所有功能,你需要了解它们才能真正了解为什么Git如此棒.
但对于一个设计师或任何从Git开始的技术人员来说,这真的很令人头痛.颠覆是众所周知的,其集中的方式使所有这些人更容易理解.
使用Subversion可以更快地开始工作和生成东西(假设你已经设置了环境;)).
Git是关于拥有个人权力,而Svn是关于企业权力(作为一个宏大的主张).
Git知道不再需要保护Master文档免受伤害.相反,现在有许多副本,除非经过sha1验证,否则更难以管理.
Svn知道人们是愚蠢的(但不是你和我;-)并且认为知道谁重命名并移动了重要内容,并且内容可以在以后签署.
Git让你用剪刀,玩杂耍链锯和制作你的产品.Svn提供防护服,工作指示和一种安全措施.
这是关于选择你想要钉在地板上的那只脚;-)