git-recover
、作業ディレクトリから誤って削除されたファイルを回復できます。リポジトリのオブジェクトデータベースに存在するファイルを見つけるのに役立ちます - git add
実行したが、コミットされなかったためです。
git-recover
使用する最も簡単な方法は、インタラクティブモードです - 単にgit-recover -i
実行するだけで、回復して行動することができるすべてのファイルが表示されます。
引数なしでgit-recover
実行すると、最近孤児になったすべてのファイル(git "blobs")がIDによってリストされます。 (彼らのファイル名は不明です。)
git show <objectid>
を実行して、これらのブロブを調べることができます。回復したいものが見つかった場合は、 git-recover
の引数としてIDを提供できます。 --filename
オプションを指定してファイルを書き出し、リポジトリに設定されたフィルターを適用できます。例えば:
git-recover 38762cf7f55934b34d179ae6a4c80cadccbb7f0a --filename shattered.pdf
また、それぞれがオプションの出力ファイル名を使用して、複数のファイルを指定することもできます。
git-recover 38762c --filename one.txt cafebae --filename bae.txt
リポジトリ内のすべての孤立したブロブを回復したい場合は、 git-recover --all
実行します。これにより、すべての孤立したファイルが現在のワーキングディレクトリに記述されるため、ワーキングディレクトリの下の一時ディレクトリ内でこれを実行することをお勧めします。例えば:
mkdir _tmp && cd _tmp && git-recover --all
デフォルトでは、 git-recover
最近作成された孤立したブロブに制限されています。リポジトリで作成されたすべての孤立したファイルを表示したい場合(ただし、まだごみ収集されていません)、実行できます。
git-recover --full
git-recover [-a] [-i] [--full] [<id> [-f <filename>] ...]
-a
、 --all
現在の作業ディレクトリにすべての孤立したブロブを書き込みます。各ファイルは、40文字のオブジェクトIDを使用して命名されます。
-i
、 --interactive
各孤立したブロブに関する情報を表示し、それを回復するように促します。
--full
パックファイルにあるすべての孤立したブロブをリストまたは回復します。デフォルトでは、 git-recover
、最近作成されたファイルに制限されるルーズオブジェクトファイルのみを調べます。特に大規模なリポジトリでは、パックファイルの検査が遅い場合があります。
<id>
オブジェクトID(またはその略語)が回復します。ファイルは、 -f
オプションが指定されていない限り、現在の作業ディレクトリに書き込まれ、40文字オブジェクトIDを使用して名前が付けられます。
-f <filename>
、 --filename <filename>
オブジェクトIDの後に指定された場合、書かれたファイルはこのファイル名を使用します。さらに、 gitattributes
構成に従って、任意のフィルター(たとえば:CRLF変換またはGIT-LFS)は実行されます。
バグを報告したり、支援を受けたり、このプログラムにバグ修正を提供するには、GitHubで確認してください。
著作権(c)エドワード・トムソン。無断転載を禁じます。
Git-Recoverはオープンソースソフトウェアであり、MITライセンスの下で利用できます。詳細については、付属のLICENSE
ファイルをご覧ください。