2

我在自己的本地功能分支上,想将其合并到 master 中。我检查了主人,确实git pull --rebase,有一个冲突,解决了它,但git rebase --continue之后我忘记了。然后我做了git merge my_other_branch,然后想把它推到原点,但是 git 告诉我我不在任何分支上,所以我就像“哦,不,我忘记了rebase --continue”所以我做了它然后 git 说“没有改变 - 你忘记使用git 添加?”。所以现在我不在任何分支上……处于某种超然的头部状态。

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

4

3 回答 3

2
git rebase --skip

应该继续rebase。

于 2013-05-02T20:33:05.107 回答
1

克拉斯的回答可能更有用,但一般来说,“分离的头”意味着你正在寻找的地方不是分支。

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

如果类似的事情再次发生,我建议您使用 来查看您的当前状态gitk --all,以了解存储库结构和您所在的位置。

于 2013-05-02T20:55:37.397 回答
0

这是一个困难的问题,因为您现在搞乱了rebase. 我会推荐这些步骤:

  • 开始gitk --all查看您当前的结构。您应该尤其能够看到您当前的 HEAD 和以前的分支头。查看 HEAD 上的提交,看看其中哪些有用。如果您认为以后仍然需要它,请在您当前的 HEAD 上创建一个临时分支。也许首先提交您当前的状态git commit -am "dirty"
  • 运行git rebase --abort——你搞砸了这个变基。我认为变基脚本无法让您摆脱困境。
  • 你现在应该回到你原来的分支头了
  • git rebase --onto使用and取回你想要取回的所有提交git cherry-pick。进一步修正git reset,git commit --ammendgit rebase
    • 例如:如果你的分支包含 commits A--B--C,并且你成功地 rebaseABto A'and B'(签入 gitk),你可以rebase --onto B' B.
于 2013-05-03T13:34:28.933 回答