Làm cách nào tôi có thể in nhật ký cho một chi nhánh khác với chi nhánh hiện tại?


82

Tôi đang ở trên một chi nhánh có một số thay đổi. Thay đổi nhánh là một điều khó khăn vì một số tệp bị khóa bởi các quy trình, vì vậy để thay đổi nhánh, tôi phải dừng tất cả các quy trình có khóa, sau đó stashthay đổi trước khi kiểm tra nhánh khác để xem nhật ký của nó.

Có thể xem nhật ký cho một chi nhánh khác mà không cần phải kiểm tra nó không?


1
Bạn đã thử chưa git log <branch>, nơi <branch>viết tắt của tên chi nhánh quan tâm?
tưng bừng

2
@Jubobs, không, tôi không có. Tôi chỉ nên thử điều hiển nhiên trước khi dùng đến việc tìm kiếm trên internet và tìm thấy những gợi ý kỳ lạ xung quanh cherryrev-list.
BanksySan

Câu trả lời:


123

TL; DR

Sử dụng

git log <branch>

nơi <branch>là tên của các chi nhánh quan tâm.

Từ git-logtrang người ...

Một phiên bản đơn giản của phần git-logtóm tắt được đưa ra trong trang người của lệnh đó

git log [<revision range>]

Sâu hơn nữa, bạn có thể tìm thấy đoạn văn sau:

Khi không <revision range>chỉ định, nó mặc định HEADlà (tức là toàn bộ lịch sử dẫn đến cam kết hiện tại)

Nói cách khác, git logtương đương với git log HEAD. Nếu bạn đang ở trên một nhánh, được gọi mybranch, chẳng hạn, lệnh này cũng tương đương với git log mybranch.

Bạn muốn giới hạn nhật ký đối với các cam kết có thể truy cập được từ một chi nhánh khác, tức là chi nhánh bạn hiện không ở trên đó. Cách dễ nhất để làm điều đó là chuyển rõ ràng tên của chi nhánh quan tâm đến git log:

git log <branchname>

Xem trang gitrevisions để biết thêm chi tiết về nhiều hình thức mà <revision-range>đối số có thể thực hiện.


Có vẻ như bạn phải có chi nhánh được kiểm tra cục bộ trước để chạy "git log" như thế này. Ít nhất git 2.27.0 hoạt động như thế này.
a_girl

@a_girl Không chắc bạn có nghĩa là gì khi "thanh toán cục bộ" ở đây. Bạn có thể chạy điều này trên một chi nhánh cục bộ (ví dụ master), cho dù nó đã được kiểm tra hay chưa và trên một chi nhánh từ xa (ví dụ origin/master).
tưng bừng

1
ooooohhh, giờ tôi hiểu rồi. Tôi đã thử git log mybranchvà nó báo lỗi, nhưng sau đó, khi tôi chạy git checkout mybranch; git checkout master; git log mybranchnó hoạt động ngay cả khi không có "origin /". Đó là lý do tại sao tôi nghĩ rằng tôi cần phải kiểm tra chi nhánh của mình trước. Nhưng tôi chỉ cần sử dụng "git log origin / mybranch" để tìm kiếm lịch sử của chi nhánh từ xa. Cảm ơn bạn.
a_girl
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.