8

这是类似问题的变体,其中提交最终出现在无头分支中。我正在添加这个问题来涵盖这个特殊情况。就我而言,问题如下:

  • 我做了一个 git 子模块更新,这使存储库处于无头状态(我忘记再次结帐到 master)
  • 我提交了代码,实际上有几个提交
  • 当我要推送到 github 时,我意识到我处于无头状态,并切换到master分支(github 应用程序让它变得如此简单)

结果:我的提交现在处于 git libo 中。

4

1 回答 1

22

根据这里那里的答案,我找到了出路git reflog

> git reflog
6b0da0d HEAD@{0}: rebase finished: returning to refs/heads/master
6b0da0d HEAD@{1}: pull --rebase --progress --prune --recurse-submodules=on-demand origin: check
d55ecfb HEAD@{2}: checkout: moving from fed7916169d740644dbbd9ea48e2d2cd510ce32d to master
fed7916 HEAD@{3}: commit: more secret stuff.
818bf20 HEAD@{4}: commit: incredible stuff I am doing, hopefully won't end up in limbo.
...etc...

提交fed7916是我要合并到的那个master。为此,我简单地输入:

> git merge fed7916

合并没有问题(它应该是因为它是从原来的位置分支master的)并且我的所有提交现在都可以再次访问,并准备好被推送到 github。

于 2013-09-27T15:55:02.797 回答