以前のバージョンで上書きされたGitリポジトリを復元する

以前のバージョンで上書きされたGitリポジトリを復元する

代わりに実行し、数日前のバージョンでgitリポジトリを上書きするtar x間違いを犯しました。tar cこれにより、を含む私が作成したすべての新しいファイルが保存されます.git。できるだけ復元するにはどうすればよいですか?

答え1

場合に備えて、まず混乱全体のコピーを作成してください。

git fsckぶら下がったオブジェクトとコミットが表示されます。最新のぶら下がっているコミットを見つけてください。すべてのコミットハッシュを入力すると、gitk一番上の最新の「最近の」ハッシュのみが表示されます。作業するコミットが数個だけであるほか、戻す分岐も一つだけです。ヘッドが複数ある場合、これはより複雑になります。

次に、git stash現在コミットされていない変更をチェックから非表示にします。

git reset --hardその後、上記で決定したコミットハッシュを取得できました。

git stash popまた、非常にきれいに再びマージされます。私が望むほとんどすべてを得たと思います。

関連情報