私のgit repoでリモートをセットアップして、まったく別のプロジェクトからフェッチしました。間違ったリポジトリを取得した後に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
は何もまだ支援してきました。誰も私のレポからこれらのコミットを取り除く方法を提案できますか?
ありがとう、それは私が必要としていたものでした。タグがコミットを取り除くのを止めているかもしれないということは私には起こりませんでした+1 – chrisbunney