2016-12-15 95 views
0
  • 我有一个远程分支主,从中我得到一个新的分支问题 - #4来处理一些事情。
  • 我做了一些修改,我承诺他们,我推他们,但工作还没有完成。
  • 然后,我发现了一个更重要的问题,所以我得到了一个新的分支问题 - #7。我犯了一个错误:我不是先检查出主,而是从问题#4而不是主人得到问题#7。
  • 我做了一些其他的修改,我承诺他们,我推他们
  • 然后在合并到主人之前,我意识到了错误:问题 - #7包含问题提交 - #4。

我该如何解决这个错误?Git:解决错误的分支派生

上原点现状:

主 - >发出─#4(提交A) - >发出─#7(提交B)

所以发出─#4已经提交A,并发出─ #7已经提交A和B.

正确情况对原点恢复:

主 - >发出─#4(提交A)

主 - >发出─#7(提交B)

所以发出─#4已经犯了,并发出─#7已提交B.

谢谢

回答

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

会使得issue-#7得自主。然后,您可以强制推issue-#7并将其合并到主模块中,而不需要从issue-#4提交。请注意,这会改变已发布的历史记录,所以如果有人签出issue-#7并基于其上的某个分支,他将不得不手动进行类似的rebase,但我认为在您的情况下这不重要。

0

在分支issue-#4

git reset --hard HEAD~1 

它消除了最后一次提交(犯)为问题#4分支。它必须解决这个错误。

+0

除了丢失'issue-#4'提交之外,这会有什么帮助。 “问题#7”是错误的,即使在那里你的指挥根本无助于解决问题。 ;-) – Vampire