将拉取请求合并到多个分支中

时间:2014-01-29 19:44:29

标签: git github

我们有来自其他分支的拉取请求以及我们自己的分支中的分支,这些分支必须转到多个分支。有没有办法我们可以一步将拉取请求合并到多个分支?

3 个答案:

答案 0 :(得分:4)

不,你不能不幸:http://git-scm.com/docs/git-merge

当我有这个要求时(通常不是这样),我通常在控制台中手动完成。如果这对您的工作流程来说是一个很大的负担,我会建议一个shell脚本,它可以首先完成所有合并而不会发生冲突,然后让您手动修复其他的。

这是否是一项要求,因为您同时拥有太多并发开发线?

答案 1 :(得分:0)

这应该已经在GitHub中实现,以确保对发布分支的提交也可以合并到master中。

插件(第三方应用程序)可以提供帮助,但不是免费的。 https://github.com/marketplace/mergify

答案 2 :(得分:-2)

不是一步到位,而是一种解决方法:

我将假设您的pull请求所基于的分支(以及您要将pr合并到的所有其他分支)都是针对master进行的。如果没有,那么用以下方式对所有这些进行改装:

$ git rebase origin/master

我们要做的是获取拉取请求的差异,将其存储,然后将存储应用于多个分支。为了简化这一点,我首先推荐squashing your commits。一旦你压缩它们,我们将撤消你的最后一次提交(由于我们正在使用soft标志,所以更改将保留,但我们希望保留我们存储中的更改。)

$ git reset --soft HEAD^

现在我们想将它们重新应用到这个分支:

$ git stash apply

请注意,我使用apply而非pop,这可确保不会删除更改。切换到您的其他分支并同时应用存储并提交更改。注意:提交时,您将拥有不同的提交SHA(因为这些都是应用于不同分支的不同更改)。这意味着如果这些分支合并,你会发生冲突,但希望这很容易,因为变化应该是相同的。话虽这么说,我绝对不推荐这条路线。这是我的建议。

您应该将该更改合并到主分支并重新绑定其他分支。如果你这样做,生活就会轻松得多。