GIT补丁 - 或 - 推?

时间:2011-06-20 23:51:10

标签: git git-branch branching-and-merging git-patch

我们正在考虑在新项目中使用git的两种方法:

  1. 开发人员向维护者发送补丁(可能最终会成为开发人员之一),他会使用补丁,测试和集成

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

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

    所以 - 我的问题是,哪个更好?我应该在一个小组中使用非开源项目开发人员吗? (听起来很奇怪,我发送补丁邮件给那个坐在我旁边的人)

2 个答案:

答案 0 :(得分:6)

为什么不提交拉取请求并处理它们呢?这就是他们对linux内核的处理方式。

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

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

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

答案 1 :(得分:0)

正确的方法是分叉。这意味着开发人员克隆存储库,完成他们的工作,完成后他们将以某种方式联系项目维护者,以便他可以从外国仓库中提取新的分支。

Github已在其UI中支持此功能。