git リポジトリにリモートを設定するのを間違えて、まったく別のプロジェクトから取得しました。
幸いなことに、マージはありませんでしたが、現在、レポに 2 つのプロジェクトの履歴が浮かんでおり、レポを誤って取得する前の状態に戻す方法を見つけようとしています。
reflog
、rebase
、gc
および誤ってフェッチしたものを取り除くのに役立つその他のコマンドについて読んでいますが、これまでのところどこにもありません。
私のレポには両方のプロジェクトの履歴があるようですが、完全に独立しています。基本的に、互いに並行して実行されているコミットの 2 つの別個のツリーがあります。実際、これはgitk
すべてのブランチを見ると次のようになります。
途中のコミットが履歴の最初と最後にあるコミットにつながっていないことがわかります。日付的にはインターリーブされていますがgitk
、何らかの理由でインターリーブされていません。
孤立したコミット (写真の中央) は、私が取り除こうとしているものであり、どのブランチにも関連付けられていないようです。私のレポの HEAD からこの一連のコミットに戻るルートはありません。
これまでのところ、私は試しました(違いが生じる場合に備えて):
git remote prune
git prune
git gc
git gc --aggressive --prune=tomorrow
git remote update --prune
git fetch --all
しかし、まだ何も役に立っていません。これらのコミットをリポジトリから削除する方法を誰か提案できますか?