2017-09-06 11 views
1

は、私はすべてのJPGファイルを削除することでプッシュする前に、私のGitのレポを「きれい」と思ったので、私は入力された:GitのルートでGit:プッシュ前にローカルで削除した後のファイルの回復は可能ですか?

find . | xargs rm *.png 

を、今すべてが deltedされます。また、私の* .pyファイルは削除されますが、なぜか分かりません。これはLinuxのUbuntuマシンです。ファイルを回復する機会はありますか?たぶん私のOS上?

find . 

このコマンドは、隠しファイルを含め.以下のすべてのファイルとディレクトリの名前を出力します

+0

? – smarber

+0

"致命的:それはリポジトリ(または親ディレクトリ)ではありません:.git" –

答えて

4

入力したコマンドは、プレーン間違っています。

xargs 

このコマンドは入力を受け取り、引数として与えられたコマンドを引数として1行ずつ入力します。したがって、それはrm *.png <line1_from_find>、次にrm *.png <line2_from_find>などを実行します。

エラー時には停止のような保護はありません。コマンドを完全に実行すると、すべてのファイルのリンクが解除され、空のディレクトリツリーがあることがわかります。 gitは、作業ディレクトリのルートにある.gitディレクトリ内にメタデータと現在の状態を格納することによって機能します。ここでは、すべてのファイルを削除しました。

コピーを作成しない限り、手作業で行ったり、他の場所に状態をプッシュしたりすると、おそらくなくなりますが、以下を参照してください。今後の参考のために、ここではPNGで終わるすべてのファイルを破壊するための正しいコマンドです:

find . -name '*.png' -delete 

あなたは.pngで終わるディレクトリを持っている可能性がある場合Optionnalyそれらをフィルタリングするために、-delete-type fを追加します。あなたがrm -fを使用していなかった場合は、そこからいくつかのデータを回復することができる可能性がありますrm名誉読み取り専用としてgitは、その内部状態の一部をマークしていることが起こる:今何


オーケー、。作業ディレクトリのルートの .gitディレクトリに移動します。それは objectsディレクトリを含み、いくつかのファイルがそこに残っているかもしれません。

これらのファイルは、あなたがそのコマンドを使用して、その内容を見ることができ、生の圧縮ストリームである:

zlib-flate -uncompress <path_to_the_file 

(ZLIB-FlateアルゴリズムコマンドはUbuntuの上qpdfパッケージから来ている) `Gitのstatus`の出力を何

+0

あなたの説明をありがとう。 .gitが完全に空であるため、zlib-flateによる復元は不可能です。 –

+1

@ N8_Coder>あなたの痛みを感じます。最後の手段として、[削除されたファイルを回復する方法](https://askubuntu.com/questions/3883/how-to-recover-deleted-files)など、askubuntuに関する質問から解決策を試すことができます。クロスフィンガーと最高のための希望、それらのツールは常にいくつかの運が関係します。 – spectras

+0

リンクありがとう! –

関連する問題