3

Gitリポジトリからファイルを削除するときに、変更がコミットされていないファイルも誤って削除してしまいました。

削除を元に戻すと、コミットされていない変更なしでファイルが返されます。ファイルのコミットされていない状態を取り戻す方法はありますか?

ここでjmort253からアドバイスを受けることがステップです...

  1. ファイルに変更を加えました(以前にコミットおよびプッシュされていたため、gitにあります)

  2. SourceTreeを使用して、前述のファイルを含むいくつかのファイルを誤って削除しました。

  3. 原点にプッシュ

  4. 間違いに気づいたことで、コミットが逆転しました(SourceTreeを使用)。

  5. ファイルは元に戻りましたが、手順1で行った変更がありません。

    お役に立てば幸いです。

4

2 に答える 2

2

要するに:いいえ。コミットされていないファイルは(ほぼ定義上)バージョン管理システムが何も知らないファイルであるため、バージョン管理システムは、ディスク上のランダムなファイル(たとえば、リポジトリのファイル階層に含まれたことはありません)。

つまり、コミットされていない変更を含むリポジトリの以前の状態に隠し場所がない限りはどうでしょうか。git stash listあなたにアイデアを与えるはずです)

そうでない場合は、オペレーティングシステムとファイルシステムに適したファイル回復方法を使用する必要があります。

于 2012-09-07T07:46:55.730 に答える
1

reflogを調べて次のことを試してください。

git rev-list --all --oneline mylostfile.txt

mylostfile.txt実際のファイルパスに置き換えます。

ファイルがgitに存在する場合、ブランチが指すコミット内または失われたコミットのいずれかにファイルが表示されます。

これにより、そのファイルへの変更が存在するすべてのコミットハッシュが表示されるため、それらの1つに必要なファイルがあるかどうかを確認するために、それらを個別に調べる必要がある場合があります。

gitよりも表示されない場合は、おそらくそのファイルについて知らないでしょう。

于 2012-09-07T10:01:08.830 に答える