Làm thế nào để liệt kê các cam kết kể từ khi cam kết nhất định?


143

Có cách nào để có được một danh sách các cam kết từ một số cam kết nhất định cho CHÍNH không?

Tôi biết điều này là có thể vào ngày cam kết, nhưng tôi cần nó bằng số cam kết và dường như tôi không thể tìm thấy bất kỳ tài liệu nào, hoặc thậm chí nếu điều này là có thể.


Lệnh Git nào bạn đã sử dụng để liệt kê các xác nhận từ một tên xác nhận đã cho?
Greg Hewgill

Bạn có nghĩa là cam kết băm, phải không? Bạn cũng có thể sử dụng HEAD~10để có nghĩa là "10 lần xác nhận trước TRƯỚC" để bạn có thể thực hiện git log HEAD~10.., nếu đó là ý nghĩa của số cam kết.
Cascabel

Câu trả lời:


173
git rev-list <since_hash>..HEAD

hoặc bao gồm các cam kết:

git rev-list <since_hash>^..HEAD

Bạn có thể sử dụng git logthay vì git rev-listtốt để có thêm thông tin chi tiết.


Điều này làm việc hoàn hảo cho tôi, cảm ơn! Tôi thề rằng tôi đã thử điều này. Phải đã phạm một sai lầm.
ehftw 12

@manojlds Tôi biết rằng việc HEADchỉ vào các cam kết cuối cùng, nhưng ý nghĩa của^
Kasun Siyambalapitiya

2
@KasunSiyambalapitiya ^là bí danh cho cha mẹ đầu tiên. Xem "ĐẶC BIỆT CÁCH MẠNG" trong kernel.org/pub/software/scm/git/docs/git-rev-parse.html - cũng xem hướng dẫn sử dụng git-scm.com/book/en/v2/Git-Tools-Revision -Selection - hoặc stackoverflow.com/questions/2221658/ từ
Michaelangel007

2
Tôi nhận được một danh sách rất lớn các SHA ... ngay cả đối với một cam kết chỉ là một trở lại (một chân của sự hợp nhất). Nó nói với tôi điều gì và nó hữu ích như thế nào?
ErikE

Nếu bạn chỉ quan tâm đến số lượng cam kết, bạn có thể chỉ định --counttùy chọn sau rev-list. tức là:git rev-list --count <since_hash>..HEAD
Jon Schneider

75
git log <hash>..

Là số lượng gõ ít nhất. Bỏ qua "ĐẦU" giả định đó là những gì bạn muốn nói. Rev-list cũng sẽ làm việc.


2
Đây là một yêu thích của tôi. Tôi thích kết hợp nó với --oneline. Thay vì <hash>, tất nhiên, bạn cũng có thể sử dụng một ref như tên chi nhánh.
viết mã

2
Ngoài ra git log HEAD~#..đâu #là số lượng cam kết gần đây mong muốn.
dùng3,1415927

def tùy chọn tốt nhất và súc tích nhất!
Ricardo Coleues

37

Bạn có thể chạy lệnh git sau từ shell:

git log --pretty=oneline commit-id...HEAD

12

Giả sử rằng bằng "số cam kết", bạn có nghĩa là cam kết băm:

git log <commit-hash>..HEAD

1

Nếu bất cứ ai ở đây đang cố gắng tìm hiểu làm thế nào để BÀI HỌC thông qua đầu ra git logbắt đầu từ một cam kết nhất định, phân trang ngược, thì đơn giản như vậy git log <hash>.

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.