Kho lưu trữ của tôi đã trải qua những thay đổi như:
- ... một số cam kết không liên quan ...
- Cam kết tệp mới
foo
với 100 dòng nội dung - ... cam kết can thiệp, một số trong số đó chạm
foo
vào ... - Chèn nội dung
foo
ở đầu tệp hiện cóbar
vàgit rm foo
trong cùng một cam kết - ... các cam kết không liên quan khác ...
Bây giờ tôi muốn xem nhật ký của tệp đã xóa foo
. Mọi thứ tôi đã đọc, kể cả trên SO, đều nói rằng tôi có thể làm được git log -- foo
, nhưng lệnh đó không tạo ra kết quả nào.
Nếu tôi tìm thấy cam kết bao gồm xóa foo
tôi có thể git log 1234abcd -- foo
và xem nhật ký của nó, vì vậy tôi nghĩ rằng con đường của tôi đến foo
không phải là vấn đề. Cũng lưu ý rằng git merge-base HEAD 1234abcd
kết quả đầu ra 1234abcd[...]
, vì vậy tôi nghĩ rằng điều đó sẽ chứng minh cam kết có thể truy cập được HEAD
. Lưu ý rằng không có tệp nào foo
trong cây làm việc của tôi (hiển nhiên, vì nó đã bị xóa). Sử dụng Git 1.7.1.1 trên OS X.
Tại sao không git log -- foo
hiệu quả với tôi và làm thế nào tôi có thể sửa chữa nó? Cảm ơn!
git log --follow -- foo
hoặcgit log --follow -M -- foo
? (để buộc phát hiện đổi tên)