2011-06-20 149 views
0

我们正在考虑两种方式在一个新的项目使用Git工作:GIT补丁 - 或 - 推?

  1. 开发者发送补丁来维护(这可能最终会被开发商之一),他的苹果那些,测试和集成

  2. 开发人员将其提交到公共“开发人员”分支(项目的每个子模块的分支),维护人员获取有关推送的邮件通知,并可以查看\ test \ integrate。

最终结果是相同的 - 一个基于最新的分支,包含开发人员提交。

所以 - 我的问题是,哪个更好?我应该在一个非开源项目开发者的小组中使用吗? (听起来不可思议,我发送补丁邮件给家伙坐在我旁边)

回答

6

为什么不提交pull请求并处理它们呢?这就是他们对Linux内核所做的。

公共共享开发者分支的主要问题是获取你不想分支的东西。你不想重新发布已发布的共享分支,并且所有的时间都是丑陋的。正常补丁的主要问题是SHA在同一个补丁的发送者和接收者之间不匹配(出于很好的理由)。如果我正在开发补丁邮件系统,我会考虑使用git-bundles来获取这些SHA。请注意,这是一个复杂的拉动方式。

另一种选择是使用gitolite(强制谁在共享分支上执行并且不允许提交)并让开发人员在“功能”分支上工作(请参阅http://nvie.com/posts/a-successful-git-branching-model/和关联的gitflow命令),并仅让可信的dev执行从功能分支到dev/master分支的合并。

您还可以查看gerrit和其他git代码审查工作流程。

0

正确的方法是分叉。这意味着开发人员克隆存储库,完成他们的工作,完成后他们会联系项目维护人员,以便他可以从外部回购中取消新分支。

Github已经在它的UI中支持它。

+3

所有'git clone'操作都是分叉的。 github的优势在于它有助于“拉动请求”基础设施自动化。 –