Git a/o DVCS的电梯间距

And*_*rer 6 svn git

想象一下,你有一个朋友通过电话(而不是VoIP)问:"Git有什么特别之处?我使用Subversion很好." 为了描述使用像Git这样的DVCS的优势,你的"电梯间距"是什么?

Cli*_*ler 2

对我来说,在像 git 这样的 DVCS 中可以做的主要事情之一在 SVN 中不能很好地工作,如下所示:

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

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

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

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

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

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

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