2017-05-24 21 views
0

私のコードを私のgitにプッシュしようとしていましたが、誤ってgit revertを行いました。それは次のようになります。偶発的なgit revertによってファイルが削除される

[master 36aff31] Revert "Addded files" 
54 files changed, 44739 deletions(-) 
delete mode 100644 myfolder/.DS_Store 
delete mode 100644 myfolder/1198232958151161470_462274348.jpg 
delete mode 100644 myfolder/localfile.py 
................ 
................ 

私は、ファイルを取り戻すためにgit checkout .をしましたが、何も起こりませんでした。ファイルを元に戻すにはどうしたらいいですか?

+2

復帰コミットだけを 'git revert'することができます。あるいは、[前のコミットにリセットする](https://stackoverflow.com/questions/4114095/how-to-revert-git-repository-to-a-previous-commit)。 –

+0

gitの仕組みを理解する必要があります。あなたのファイルはディスク上で削除されましたが、gitリポジトリ履歴では削除されませんでした。古いコミットにはまだそれらのファイルがあります。たくさんのファイルを追加したコミットを元に戻そうとしなかった場合は、このコミットを元に戻す前に元に戻すか(それに続くコミットがないと仮定して)、元に戻すか、ここではネガティブがプラスになります)。 –

+1

経験から、git resetアプローチを使用するようには言いません.Gitが何をしているのかわからない場合は、「すべての最新のコミットが今でもやっています。 –

答えて

0

あなたがきれいにあなたのコミット履歴を保持したい場合はgit revertあなたの不慮の取り消しながら、あなたが戻って(HEAD^)コミット(元に戻す)現在の直前にコミットするように作業ディレクトリの状態を設定するための--hardオプションでgit resetを使用することができます:

git reset --hard HEAD^ 

NB:偶然のコミットので、あなたが他のコミットを行っていないか、これはあなたの作業ディレクトリからそれらの変更を破棄することを確認してください。

クリーンコミットの履歴を気にしない場合は、2番目のgit revertを実行する方が安全でしょう。

関連する問題