这是类似问题的变体,其中提交到了无头分支。我添加了这个问题来覆盖这种特殊情况。在我的情况下,问题如下:
- 我进行了 git 子模块更新,这使得仓库处于无头状态(而我忘记再次检出到 master 分支)
- 我提交了代码,事实上提交了几次
- 当我准备推送到 Github 时,我意识到我处于无头状态,并切换到了
master
分支(Github 应用程序让它非常容易)
结果:我的提交现在在 Git 的地狱中。
这是类似问题的变体,其中提交到了无头分支。我添加了这个问题来覆盖这种特殊情况。在我的情况下,问题如下:
master
分支(Github 应用程序让它非常容易)结果:我的提交现在在 Git 的地狱中。
根据这里和那里的答案,我找到了使用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 上了。