回答:
git log --diff-filter=D --summary
Gitリポジトリーで削除されたファイルを見つけて復元するを参照してください
削除されたコミットに関するすべての情報が必要ない場合はgrep delete
、そこにを追加するだけです。
git log --diff-filter=D --summary | grep delete
git log --find-renames --diff-filter=D --summary | grep delete
git log --no-renames --diff-filter=D --summary | grep delete
grep delete
コミットメッセージに削除という単語が含まれている場合、それもピックアップされるため、使用には注意してください。grep 'delete mode'
代わりに使用してください。
現在削除されているファイルのみを表示したい場合は、次のように使用できます。
git ls-files --deleted
その後、それらを削除したい場合(「git rm」を使用せずに削除した場合)パイプはxargs git rmになります
git ls-files --deleted | xargs git rm
git rm $(git ls-files --deleted)
そして、結果を何らかの形で制限したい場合は、ここに良いものがあります:
$ git log --diff-filter=D --summary | sed -n '/^commit/h;/\/some_dir\//{G;s/\ncommit \(.*\)/ \1/gp}'
delete mode 100644 blah/some_dir/file1 d3bfbbeba5b5c1da73c432cb3fb61990bdcf6f64
delete mode 100644 blah/some_dir/file2 d3bfbbeba5b5c1da73c432cb3fb61990bdcf6f64
delete mode 100644 blah/some_dir/file3 9c89b91d8df7c95c6043184154c476623414fcb7
削除されたすべてのファイルsome_dir
(sedコマンドを参照)と、それが発生したコミット番号が表示されます。すべてのsed正規表現で実行できます(これを使用して、削除されたファイルタイプなどを検索します)
git log --diff-filter=D .
Windowsにはgrep
コマンドがないため、PowerShellでこれが機能しました。
git log --find-renames --diff-filter=D --summary | Select-String -Pattern "delete mode" | sort -u > deletions.txt
Select-String
?
some_branch内のすべての削除済みファイルを表示
git diff origin/master...origin/some_branch --name-status | grep ^D
または
git diff origin/master...origin/some_branch --name-status --diff-filter=D
git diff origin/master...origin/some_branch --name-status | grep ^D
かgit diff origin/master...origin/some_branch --name-status --diff-filter=D
これにより、すべてのブランチで削除されたすべてのファイルのリストが、パスでソートされて表示されます。
git log --diff-filter=D --summary | grep "delete mode 100" | cut -c 21- | sort > deleted.txt
msysgit(2.6.1.windows.1)で動作します。gitファイルはモード100644または100755としてコミットされている可能性があるため、「削除モード100」が必要であることに注意してください。
git diff --name-status commit_hash
ます。