背景: リモートを持つローカル リポジトリがあります。かなり長い間、すべてが順調に進んでいます。私は Mac で開発を行っており、GitX を使用しています。これから説明する問題の前に、私は 5 日前にリモートにプッシュし、それ以降、プッシュされていないローカル コミットが 10 件ありました。
問題: GitX でコミットをステージングし、そのコミット メッセージを書き、「コミット」のキーボード ショートカット キーを押しました。(少なくとも、私はそう思います-私はすぐにそれをやったので、おそらく偶然別のことをしたのかもしれません-確かではありません.) その後、次の状況が発生しました:
- GitX は master を origin/HEAD および origin/master から完全に切断されていると表示するようになりました。(ここで GitX ウィンドウの一部のスクリーンショットを参照してください。)
- GitX は、最後のプッシュ以降の 10 件のコミットの記録も示していません。(最新の 10 個のコミットは、そのスクリーンショットのリストにはありません。)
- GitX は、リポジトリ内のすべてのファイルがその 1 つの (最新の) コミットで追加されたかのように、master の現在の位置に履歴がないことを示しているようです。(スクリーンショットには表示されません。)
git log
コマンド ラインから1 つのエントリのみを一覧表示します。これは、作成した最後のコミットです。git log -g
コマンドラインから を実行すると、欠落している 10 個のコミットと最新のコミットを含む完全な履歴が一覧表示されます。
何が起こっているのか、なぜ上記の 5 つのことが起こっているのか、私にはわかりません。git log
とgit log -g
(aka )の違いはわかりませんが、git log --walk-reflogs
欠落しているデータが存在する場所のようです。
質問:にのみ表示される 10 個のコミットを取り戻すにはどうすればよいgit log -g
ですか? マスターを残りの履歴に再接続するにはどうすればよいですか? そもそも何がこれを引き起こしたのですか?