Git:解决错误的分支派生

时间:2016-12-15 13:42:14

标签: git

  • 我有一个远程分支主机,我从中派生了一个新的分支问题 - #4来处理某些事情。
  • 我做了一些修改,我承诺了,我推了他们,但工作尚未完成。
  • 然后,我发现了一个更重要的问题,所以我推出了一个新的分支问题 - #7。我犯了一个错误:我没有先检查主人,而是从问题#4而不是主人那里得到问题#7。
  • 我做了一些其他的修改,我提交了它们,我推了它们
  • 然后在合并到掌握之前,我意识到了这个错误:问题 - #7包含了在问题上做出的提交 - #4。

我该如何解决这个错误?

原产地的现状:

master - > issue-#4(Commit A) - >问题 - #7(承诺B)

所以问题 - #4有提交A,问题#7有提交A和B.

恢复原产地的正确情况:

master - >问题 - #4(承诺A)

master - >问题 - #7(承诺B)

所以问题 - #4有提交A,问题#7有提交B.

谢谢

2 个答案:

答案 0 :(得分:2)

git rebase --onto master 'issue-#4' 'issue-#7'

将使issue-#7从master获得。然后你可以强制推送issue-#7并将其合并到master,而不需要issue-#4的提交。请注意,这将改变已发布的历史记录,因此如果有人签出issue-#7并在其上设置了一些分支,他将不得不手动执行类似的rebase,但我认为在您的情况下这并不重要。< / p>

答案 1 :(得分:0)

在分支issue-#4

git reset --hard HEAD~1

它删除了issue#4分支的最后一次提交(Commit A)。它必须解决这个错误。