Saya tahu Git menyimpan informasi tentang kapan file dihapus dan saya dapat memeriksa setiap komitmen untuk melihat file mana yang telah dihapus, tetapi adakah perintah yang akan menghasilkan daftar setiap file yang dihapus sepanjang umur repositori?
306
git diff --name-status commit_hash
.Jawaban:
Lihat Menemukan dan mengembalikan file yang dihapus di repositori Git
Jika Anda tidak ingin semua informasi tentang komit mana mereka dihapus, Anda bisa menambahkannya
grep delete
di sana.sumber
git log --find-renames --diff-filter=D --summary | grep delete
git log --no-renames --diff-filter=D --summary | grep delete
grep delete
karena jika pesan komit memiliki kata hapus, itu akan diambil juga. Gunakangrep 'delete mode'
sebagai gantinya.Ini melakukan apa yang Anda inginkan, saya pikir:
... yang baru saja saya ambil kurang lebih langsung dari jawaban lain ini .
sumber
Jika Anda hanya tertarik melihat file yang saat ini dihapus, Anda dapat menggunakan ini:
jika Anda kemudian ingin menghapusnya (jika Anda menghapusnya tidak menggunakan "git rm") pipa yang menghasilkan xargs git rm
sumber
git rm $(git ls-files --deleted)
Mengutip ini jawaban Stack Overflow.
Ini adalah cara yang cukup rapi untuk mendapatkan tipe perubahan (A: Ditambahkan, M: Dimodifikasi, D: Dihapus) untuk setiap file yang diubah.
sumber
Dan jika Anda ingin membatasi hasilnya, inilah yang bagus:
Anda akan mendapatkan semua file dihapus dari
some_dir
(lihat perintah sed) bersama dengan nomor komit di mana itu terjadi. Setiap regex akan melakukan (Saya menggunakan ini untuk menemukan jenis file yang dihapus, dll)sumber
git log --diff-filter=D .
Karena Windows tidak memiliki
grep
perintah, ini berfungsi untuk saya di PowerShell:sumber
Select-String
?Tampilkan semua file yang dihapus di some_branch
atau
sumber
git diff origin/master...origin/some_branch --name-status | grep ^D
ataugit diff origin/master...origin/some_branch --name-status --diff-filter=D
Ini akan memberi Anda daftar semua file yang dihapus di semua cabang, diurutkan berdasarkan jalurnya:
Bekerja di msysgit (2.6.1.windows.1). Catatan kita perlu "hapus mode 100" karena file git mungkin telah dikomit sebagai mode 100644 atau 100755.
sumber