Nếu bạn chỉ muốn tìm commit mới nhất, bạn không muốn git-log
, bạn muốn git-rev-list
, liệt kê các đối tượng cam kết thay đổi tệp đó, trong đường dẫn cam kết đó, bắt đầu bằng tệp gần đây nhất (theo thứ tự thời gian). Một cách đơn giản:
git rev-list -1 <commit> <filename>
Đối git-rev-list
trong trường hợp của bạn, bạn chỉ cần cung cấp:
- Số lượng cam kết để bao gồm, hoặc -1 chỉ gần đây nhất,
- Các chi nhánh (hoặc id cam kết) để bắt đầu nhìn lại từ, HEAD nếu bạn đã ở trên đó hoặc --all nếu bạn muốn tất cả các cam kết đã biết và
- Đường dẫn tương đối vào tệp của bạn.
này chỉ trả về gần đây nhất cam kết ID tại các chi nhánh hiện tại để thay đổi tập tin đó, ví dụ: 215095e2e338525be0baeeebdf66bfbb304e7270
Đối với một ví dụ phức tạp hơn, bạn có thể sử dụng tên thẻ, và thậm chí cả tài liệu tham khảo từ xa, và bao gồm tương đối tên đường dẫn với các kí hiệu, cho ví dụ:
git rev-list origin/user/bob/testbranch -1 src/bfiles/*.txt
... trong đó sẽ cho bạn biết sự thay đổi gần đây nhất là trận đấu wildcard trong lịch sử của ngành đó. Các tùy chọn cho danh sách rev là cực đoan, nó là một trong những lệnh hệ thống ống nước quan trọng nhất, vì vậy bạn có thể bao gồm hoặc loại trừ bằng bất kỳ tiêu chí nào bạn có thể tưởng tượng.
Tất nhiên, hãy tham khảo git-rev-list(1) Manual Page.
Nguồn
2015-09-25 03:23:48
Nếu bạn muốn biết lần cuối tệp được sửa đổi bất kể nhánh nào, bạn có thể xem xét tất cả các nhánh bằng cách thêm tùy chọn '--all'. –