2012-02-20 26 views
11

Khi tôi kiểm tra cam kết trước đó của kho lưu trữ git, 'git log' không còn hiển thị các cam kết đã cam kết sau cam kết hiện đã được kiểm tra.Nhật ký Git: nhật ký các bản sửa đổi trong tương lai

Vì vậy, câu hỏi đặt ra là: làm thế nào để có được nhật ký cam kết sau khi kiểm tra hiện tại?

+3

Không thực sự là câu trả lời, nhưng tôi * rất cao * đề xuất sử dụng 'gitk --all' để hiển thị nhiều nhánh và lịch sử. – Irfy

Trả lời

17

Bạn có thể sử dụng --all cờ để xem tất cả các phiên bản, như trong

git log --all 

Nếu bạn chỉ quan tâm đến các phiên bản trong tương lai, bạn cũng có thể sử dụng

git log [email protected]{1}  # assuming you just switched from the future master 
git log ..abcdef # assuming abcdef is the newest future commit 
+0

bạn có thể giải thích '.. @ {1}' không? – drzaus

+0

@drzaus '@ {n}' là cam kết thứ n trong nhánh hiện tại của bạn, vì vậy '@ {1}' chỉ đơn giản là cam kết mới nhất trong nhánh hiện tại. Dấu chấm kép '..' cho biết tất cả mọi thứ có thể truy cập từ cam kết ở bên phải mà không thể truy cập từ cam kết ở bên trái. Do đó, 'HEAD .. @ {1}' hiển thị mọi thứ có thể truy cập từ cam kết mới nhất trong nhánh hiện tại nhưng không phải là cam kết hiện tại (và 'HEAD' có thể bị bỏ qua). – phihag

1

Vấn đề là: bạn không biết trẻ em cam kết, chỉ có ý kiến ​​của phụ huynh.
Và nếu bạn thanh toán trực tiếp một cam kết SHA1, bạn đang ở trong Detached HEAD mode (tức là không phải trên bất kỳ chi nhánh nào).

Một giải pháp tiềm năng sẽ là liệt kê tất cả các chi nhánh có chứa cam kết của bạn: "How to know which branch a “git log” commit belongs to?".
Và sau đó thực hiện đăng nhập git cho từng nhánh đó.

Các vấn đề liên quan