如何为具有我的更改的功能分支提交拉取请求

时间:2014-09-06 00:49:15

标签: git github merge git-branch rebase

这是我的情景。

我有一个分支执行代码迭代。

当我想冻结代码库时,我就有了一个分支。

如果在冻结的代码库中发现了一个错误,那么我必须在冻结的代码库中创建一个功能分支并合并回冻结的代码库。所以场景看起来像这样:

  • BRANCH1
    • 分支2(冻结)

我有一个确定的错误:

  • 分支1
    • 分支2(冻结)
    • 分支3(用于修复分支2中的代码错误的功能分支)

我总是在branch1中迭代,所以这个分支不应该发挥作用。

我遇到的问题是我在我的github pull请求中看到了我的提交。

  • 有人将错误修正推送到branch2(远程)。
  • 同样的变化不在branch1。
  • 我获取并重新绑定branch2(本地)。
  • 我将更改合并到branch3。
  • 我将我的新branch3上游推送到github(远程)。

我现在不仅看到了我的更改,而且还在我的pull请求中看到了branch2中的最后一次提交。

有谁知道为什么会这样,以及我如何解决这个问题?

提前谢谢。

2 个答案:

答案 0 :(得分:1)

合并更改后,请尝试使用--no-ff选项,即

git commit --no-ff -m"msg"保留提交历史记录并将更改置于顶部。

答案 1 :(得分:0)

我说问题是:<<

  • 我获取并重新绑定branch2(本地)。
  • 我将更改合并到branch3中。 >>

对于这种情况,我更喜欢在branch3上执行rebase到branch2:

git checkout branch3
git rebase branch2

将branch3重置为branch2后,将重新应用您的更改。这样,PR保持清洁,如果发生冲突,您将不得不解决自己的变化,而不是来自其他人的变更。

请注意,由于其历史记录已更改,因此必须强制推送branch3,但这不是临时功能分支的问题。