忘了git rebase - 继续

时间:2013-05-02 20:27:16

标签: git

我在我自己的本地功能分支上,想把它合并到master中。我检查了主人,做了git pull --rebase,有一次冲突,解决了,但我忘记了git rebase --continue之后。然后我做git merge my_other_branch然后想把它推到原点,但是git告诉我我不在任何分支上,所以我就像“哦不,我模糊rebase --continue”所以我做了然后然后git说“没有变化 - 你忘了使用git add吗?”。所以现在我不在任何一个分支上......处于一个独立的头状态。

我需要做些什么才能回到正轨?

3 个答案:

答案 0 :(得分:2)

git rebase --skip

应继续坚持。

答案 1 :(得分:1)

Klas的回答可能更有用,但一般来说,“独立头”意味着您所寻找的不是分支。

因此,你可以通过检查一个分支(特别是你希望你所在的分支)来解决这个问题。

如果再次出现这种情况,我建议您使用gitk --all查看当前状态,以了解存储库结构以及您的位置。

答案 2 :(得分:0)

这是一个棘手的问题,因为你现在搞砸了rebase的内部。我会推荐这些步骤:

  • 启动gitk --all以查看您当前的结构。您应该特别能够看到当前的HEAD和以前的分支头。查看HEAD上的提交,看看哪些是有用的。如果您认为以后仍需要它,请在当前HEAD上创建临时分支。也许首先使用git commit -am "dirty"
  • 提交当前状态
  • 运行git rebase --abort - 你弄乱了这个rebase。我不认为rebase脚本能够让你离开那里。
  • 你现在应该回到你原来的分支机构
  • 使用git rebase --ontogit cherry-pick取回您想要返回的所有提交内容。使用git resetgit commit --ammendgit rebase进一步加强修正。
    • 例如:如果您的分支包含提交A--B--C,并且您已成功将AB重新定位为A'B'(请检入gitk),你可以rebase --onto B' B