恢复git合并提交,然后恢复恢复

时间:2011-11-01 16:11:09

标签: git github git-revert

我们的团队使用Github Pull Requests来管理我们的工作流程,就像what is described here一样。在手动查看接受的Pull请求时,我们偶尔需要还原该合并,因为它尚未准备好部署到我们的生产服务器。

但是,如果开发人员再次尝试发出Pull Request,则无法识别这些更改已被还原,并且发现提交已经在主分支中。它只包括自恢复以来最近的提交,但我们真正想要的是重新引入所有已经恢复的提交,以及他们的新工作。换句话说,我们喜欢重新发出原始Pull请求的方法。

由于Github不支持此功能(即,既不恢复合并,也不撤消/重新发布原始拉取请求),我目前正在还原恢复的合并。这感觉不对。

我可以用什么方法在git中实现相同的目标? (或Github,如果可能的话)

3 个答案:

答案 0 :(得分:1)

我认为你的问题出现了,因为当你处理pull请求时,你选择在GitHub上自动合并它们。处理拉取请求的三种建议方法described in the documentation中,您使用的是最后一个(“自动合并”),这只是recently implemented。就个人而言,我认为这只适用于明显正确的琐碎拉动请求。对于任何更复杂的事情,我想要使用第一种方法,即

  • 将请求者的存储库添加为新的远程
  • 从那个遥控器获取
  • 尝试合并
  • 仔细测试
  • 如果你满意,
  • 推动结果

这意味着合并后的版本只有在您测试并决定推送后才会公开。如果您不想,可以将主分支重置为之前的位置。


感兴趣的是,如果您最终不得不恢复令人遗憾的合并,但仍希望能够选择重新合并以后会发生什么那个分支的版本。虽然它可能感觉不对,但据我所知,处理这种情况的最简单方法确实是恢复还原。您可以通过Linux Torvalds在this post from the Pro Git bloganother discussion of the same problem中找到有关此问题的更多讨论,这可能也会有所帮助。

答案 1 :(得分:0)

我建议你们采取不同的方法。您恢复和还原恢复的工作流程对我来说似乎很混乱。您尝试解决的实际问题可以采用不同的方式解决。

我建议您更改工作流程以使用两个分支。一个稳定分支(master)和一个开发分支(develop)。所有工作都进入develop分支,或进入单独的主题分支。拉取请求始终针对develop分支提交,然后在获得批准时合并到develop

master最初是develop的分支。只要develop处于稳定状态,您就会将其合并到master中。 master是目前的稳定版本。

这基于nvie's "A successful Git branching model"

答案 2 :(得分:0)

如果你有一个按功能分支的团队,你可以用你喜欢的功能重建一个候选版本。您不需要“还原合并”:

进一步阅读:https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR

请参阅评论以获得更多见解。它对我们来说非常好。