Yanıtlar:
git log --diff-filter=D --summary
Bkz. Git deposunda silinmiş bir dosyayı bulma ve geri yükleme
Hangi taahhütlerin kaldırıldığına dair tüm bilgileri istemiyorsanız grep delete, oraya bir ekleyebilirsiniz .
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çünkü taahhüt mesajı silme kelimesine sahipse, o da alınacaktır. grep 'delete mode'Bunun yerine kullanın .
İstediğinizi yapar, sanırım:
git log --all --pretty=format: --name-only --diff-filter=D | sort -u
... doğrudan bu diğer cevaptan az çok aldım .
Yalnızca şu anda silinmiş dosyaları görmek istiyorsanız, bunu kullanabilirsiniz:
git ls-files --deleted
daha sonra bunları kaldırmak istiyorsanız ("git rm" kullanarak silmediyseniz) xargs git rm
git ls-files --deleted | xargs git rm
git rm $(git ls-files --deleted)
Ve sonuçları bir şekilde kısıtlamak istiyorsanız, güzel bir sonuç:
$ 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İçinden taahhüt edilen numarayla birlikte tüm dosyaların silinmesini sağlar (sed komutuna bakın). Herhangi bir sed regex yapacak (silinen dosya türlerini bulmak için kullanıyorum vb.)
git log --diff-filter=D .
Windows'un bir grepkomutu olmadığından , bu benim için PowerShell'de çalıştı:
git log --find-renames --diff-filter=D --summary | Select-String -Pattern "delete mode" | sort -u > deletions.txt
Select-String?
Silinen tüm dosyaları some_branch içinde göster
git diff origin/master...origin/some_branch --name-status | grep ^D
veya
git diff origin/master...origin/some_branch --name-status --diff-filter=D
git diff origin/master...origin/some_branch --name-status | grep ^Dveyagit diff origin/master...origin/some_branch --name-status --diff-filter=D
Bu, tüm dallarda silinmiş ve yollarına göre sıralanmış tüm dosyaların bir listesini alır:
git log --diff-filter=D --summary | grep "delete mode 100" | cut -c 21- | sort > deleted.txt
Msysgit (2.6.1.windows.1) içinde çalışır. Git dosyaları 100644 veya 100755 olarak işlenmiş olabileceğinden, "100 silme moduna" ihtiyacımız olduğunu unutmayın.
git diff --name-status commit_hash.