代码之家  ›  专栏  ›  技术社区  ›  Andreas Scherer

Git a/o DVCS的电梯间距

  •  6
  • Andreas Scherer  · 技术社区  · 17 年前

    想象一下,你有一个朋友在打电话(不是VoIP),他问:“Git有什么特别之处?我使用Subversion很好。”为了描述使用像Git这样的DVCS的优势,你的“电梯推销”是什么?

    6 回复  |  直到 17 年前
        1
  •  2
  •   Clint Miller    17 年前

    对我来说,在像git这样的DVCS中,你可以做的一件在SVN中效果不佳的主要事情是:

    1) 为正在开发的各种功能从主干中创建几个开发分支。

    2) 在任一特征分支完成并准备合并到主干之前,将代码从一个特征分支合并到另一个特征支路。

    3) 稍后,将特征分支合并到主干中。

    将新功能分解为单独的分支是很好的,这样主干就可以保持干净,直到功能完成。但是,不可避免地,您会遇到这样的情况,即在一个功能分支上工作的团队编写了另一个功能部门上的团队所需的一些代码。如果您使用SVN跨功能分支合并此代码,以后将难以合并到主干中。Git避免了这个问题。

    这是另一个好处。..贵公司决定将功能开发外包给一家印度承包公司。或者,您的专业服务团队需要为客户添加一项功能,该功能可能会在未来进行产品化。你真的不想让印度承包商或你的PS组对你的SVN进行写访问。因此,他们必须在源代码控制之外构建代码,而你必须自己合并它,在没有SVN任何帮助的情况下自己检测和解决任何冲突,并在此过程中丢失所有承包商的签入历史记录。

    但是使用git,你只需给承包商或你的PS团队一份存储库的副本,他们就可以像开发人员一样提交给它。稍后,您可以使用git的功能将更改合并回您的git存储库。Git会发现冲突,并保存历史记录。

    最后,git最酷的一点是,你真的不必说服你的朋友它比SVN好。因为git与SVN集成得很好,你的公司/朋友可以愉快地使用SVN,而你也可以愉快地用连接到SVN的git。

        2
  •  2
  •   Community Mohan Dere    9 年前

    已经有了 a question similar to this 此外,埃里克·辛克有一个 number articles 关于 DVCS 对另一个问题的回答和文章都可能有助于做出明智的决定。简单地说一个比另一个好可能没有帮助(可悲的是,这似乎是Linus在这方面所做的一切,这并不能真正说服人们——至少不是我:)。

        3
  •  1
  •   Marcin Gil    17 年前

    让他在不访问网络存储库的情况下(例如在飞机上)工作/签出/提交/检查日志/恢复。

        4
  •  1
  •   Dustin    17 年前

    这是一个问题 blub .

    你可以在集中式系统中做任何事情,我也可以在分布式系统中做,但我的日常DVCS任务使我成为一名如此高效的开发人员,但这些任务无法在你的集中式系统中执行——你无法理解这一点,因为你感知的世界受到了你的系统所施加的限制。

        5
  •  0
  •   Aaron Digulla    17 年前

    两个词:合并,分支。

    Git中的合并和分支比其他任何地方都更容易。Git需要解决一个问题:合并由数千名很少处于同一版本的开发人员编写的代码。现在在SVN中尝试一下:

    1. 提交你的工作副本(不破坏其他人的构建)
    2. 获取最新版本(不损坏工作副本)
    3. 将代码与任意目标版本合并,同时能够回滚到工作副本或目标版本,而不会丢失三个版本中的任何一个(工作副本、目标版本、两者之间的合并)。

    这可以用SVN完成,但在Git中,这是默认的操作模式,因此最简单。

        6
  •  0
  •   Paul    17 年前

    对于开发人员来说,DVCS和SVN之间最重要的区别是 速度 .

    当一个在SVN中需要30秒或4分钟的命令在Git、Mercurial或Bazaar中需要1秒或2秒时,这对开发人员来说是一个巨大的区别。版本控制成为一项次要任务,而不是对工作流程的中断。你不需要添加咖啡因;重新唤起你的巴甫洛维亚仪式,开始工作;你通过不失去注意力来保持专注。

    其他好处很重要,但相比之下,它们是次要的:

    • 更简单、更灵活的分支和合并,合并冲突更少、更简单
    • freedom brom受到网络访问和服务器正常运行时间的限制
    • 与您的工作流程相匹配的仓库结构