8

これは、コミットがヘッドレス ブランチで終了する、同様の質問の変形です。この特定のケースをカバーするために、この質問を追加しています。私の場合、問題は次のとおりです。

  • git サブモジュールの更新を行ったところ、リポジトリがヘッドレス状態のままになりました (そして、マスターに再度チェックアウトするのを忘れていました)。
  • 私はコードをコミットしました、実際にはいくつかのコミット
  • github にプッシュしようとしていたときに、自分がヘッドレス状態であることに気付き、masterブランチに切り替えました (github アプリを使用すると簡単に実行できます)。

その結果、私のコミットは git limbo になりました。

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 に答える