【问题标题】:GIT Patches - or - Push?GIT 补丁 - 还是 - 推送?
【发布时间】:2011-06-20 23:51:09
【问题描述】:

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

  1. 开发人员将补丁发送给维护人员(最终可能会成为开发人员之一),他会应用这些补丁,测试并集成

  2. 开发人员将他们的提交推送到公共“开发人员”分支(项目的每个子模块的分支),维护人员收到有关推送的邮件通知,并且可以审查\测试\集成。

    李>

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

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

【问题讨论】:

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


    【解决方案1】:

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

    公共共享开发者分支的主要问题是从分支中获取您不想要的东西。您不想对已发布的共享分支进行变基,并且一直还原是丑陋的。普通补丁的主要问题是同一补丁的发送者和接收者之间的 SHA 不匹配(有充分的理由)。如果我正在开发一个补丁邮件系统,我会考虑使用 git-bundles 来准确获取这些 SHA。请注意,这是一种复杂的拉动方式。

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 所有git clone 操作都是分叉。 github 的优势在于它有助于“拉取请求”基础设施自动化。
      猜你喜欢
      • 2014-11-28
      • 2015-05-21
      • 2011-09-20
      • 1970-01-01
      • 2012-09-05
      • 2011-01-14
      • 2010-09-29
      • 2014-12-28
      • 2011-06-13
      相关资源
      最近更新 更多