Repositori saya mengalami perubahan seperti:
- ... beberapa komitmen yang tidak terkait ...
- Komit file baru
foo
dengan 100 baris konten - ... melakukan intervensi, beberapa di antaranya menyentuh
foo
... - Sisipkan konten
foo
di bagian atas file yang adabar
dangit rm foo
di komit yang sama - ... lebih banyak komitmen yang tidak terkait ...
Sekarang saya ingin melihat log dari file yang dihapus foo
. Semua yang saya baca, termasuk di SO, mengatakan saya harus bisa git log -- foo
, tetapi perintah itu tidak menghasilkan keluaran.
Jika saya menemukan komit yang menyertakan penghapusan, foo
saya bisa git log 1234abcd -- foo
dan melihat lognya, jadi menurut saya jalur ke foo
bukan masalah. Juga perhatikan bahwa git merge-base HEAD 1234abcd
keluaran 1234abcd[...]
, jadi saya pikir itu harus membuktikan bahwa komit dapat dijangkau dari HEAD
. Perhatikan bahwa tidak ada file foo
di pohon kerja saya (jelas, sejak dihapus). Menggunakan Git 1.7.1.1 di OS X.
Mengapa tidak git log -- foo
berhasil untuk saya dan bagaimana cara memperbaikinya? Terima kasih!
git log --follow -- foo
ataugit log --follow -M -- foo
? (untuk memaksa deteksi penggantian nama)--follow
--tapi membacahistory
saya lihat saya sudah melakukannya di tempat lain ketika saya mencobanya, membuat jalurnya tidak valid.git log --follow -- foo
berhasil ketika saya mencoba dari titik awal yang benar. Saya kira Git dianggap bergulirfoo
ke dalambar
sebagai semacam mengubah nama? Bagaimanapun, terima kasih! Saya akan dengan senang hati memberi kredit ini jika Anda akan memposting ulang sebagai jawaban.--
diubah menjadi—
dalam judul pertanyaan ...Jawaban:
Anda ingin menggunakan
--follow
opsi ongit log
, yang dijelaskan di halaman manual sebagai:Secara efektif, ini tidak hanya memungkinkan Anda melihat riwayat file yang diubah namanya, tetapi ini juga memungkinkan Anda untuk melihat riwayat file tidak lagi di pohon kerja. Jadi, perintah yang harus Anda gunakan akan terlihat seperti ini:
Memperbarui:
Git 2.9+ sekarang telah mengaktifkan ini secara default untuk semua
git diff
dangit log
perintah:Terima kasih untuk x-yuri atas perhatiannya!
sumber
--follow
bagian. Saya hanya perlu menambahkan--
. Saya sedang berlarigit-2.9.0
.