Nhật ký git giữa các thẻ


82

Tôi đang cố gắng xuất nhật ký giữa hai cam kết được gắn thẻ.

mbell@cheetah [12:07:22] [/var/www/html/brone] [dev]
-> % git tag 
6.x-0.1
6.x-1.0-beta1
6.x-1.0-beta2
6.x-1.0-beta3
6.x-1.0-beta4
6.x-1.0-beta5
6.x-1.0-beta6
6.x-1.0-beta7
6.x-1.0-beta8
6.x-1.0-beta9

Nếu sau đó tôi làm:

git log 6.x-1.0-beta8 6.x-1.0-beta9 > ~/gitlogbrone.txt

Nó xuất ra tất cả các cam kết kể từ khi bắt đầu repo, điều không như tôi muốn. Tôi đã đọc qua hướng dẫn sử dụng git log nhưng nó không giúp được gì nhiều.

Câu trả lời:


146

Bạn cần dấu chấm lửng để biểu thị một phạm vi. Cố gắng git log tag1..tag2.


25
...sẽ cung cấp cho bạn sự khác biệt đối xứng (chỉ hiển thị cam kết không thể truy cập từ cả hai thẻ), tôi đoán bạn muốn..
knittl

14
Lưu ý: các thẻ phải theo thứ tự tăng dần. newtag..oldtagkhông hoạt động
balki

4
Re: "các thẻ phải theo thứ tự tăng dần. Newtag..oldtag không hoạt động": Tôi nghĩ git chỉ dịch các thẻ thành các cam kết tương ứng của chúng trước, sau đó thực hiện thao tác được yêu cầu đối với các cam kết đó. Việc chuyển đổi thứ tự của các thẻ chỉ đảo ngược sự khác biệt trước và sau, nhưng vẫn hoạt động.
Gino

1

Tôi sử dụng cái này để nhận các cam kết giữa 2 thẻ cuối cùng:

git log --pretty=format:%s `git tag --sort=-committerdate | head -1`...`git tag --sort=-committerdate | head -2 | awk '{split($0, tags, "\n")} END {print tags[1]}'` > change_log.txt
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.