Журнал Git між тегами


84

Я намагаюся вивести журнал між двома позначеними комітами.

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

Якщо я тоді:

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

Він видає всі коміти з початку репо, що не те, що я хочу. Я прочитав посібник журналу git, але це не дуже допомагає.

Відповіді:


149

Для позначення діапазону потрібна еліпсис. Спробуйте git log tag1..tag2.


25
...дасть вам симетричну різницю (тільки з зазначенням фіксацій НЕ досяжні з обох тегів), я припускаю , що ви хочете..
knittl

14
Примітка: теги мають бути у порядку зростання. newtag..oldtagне працює
balki

4
Re: "теги повинні бути за зростанням. Newtag..oldtag не працює": Я думаю, git просто переводить теги до їх відповідних комітів, а потім виконує запитувану операцію над цими комітами. Перемикання порядку тегів просто змінює різницю до і після, але все одно має працювати.
Джино

а як бути, якщо тег перший?
Томас Деко,

2

Я використовую це для отримання комітів між останніми 2 тегами:

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.