Dziennik Git między tagami

84

Próbuję wyprowadzić dziennik między dwoma oznaczonymi zatwierdzeniami.

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

Jeśli to zrobię:

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

Wyprowadza wszystkie zatwierdzenia od początku repozytorium, co nie jest tym, czego chcę. Przeczytałem podręcznik dziennika git, ale niewiele to pomaga.

cyfrowy
źródło

Odpowiedzi:

149

Aby wskazać zakres, potrzebujesz wielokropka. Spróbuj git log tag1..tag2.

Noufal Ibrahim
źródło
25
...daje różnicy symetrycznej (tylko pokazując zobowiązuje nie osiągalny z obu znaczników), myślę, że chcesz..
Knittla
14
Uwaga: tagi powinny być w porządku rosnącym. newtag..oldtagnie działa
balki
4
Re: "Tagi powinny być w porządku rosnącym. Newtag..oldtag nie działa": Myślę, że git po prostu tłumaczy tagi najpierw na ich odpowiednie zatwierdzenia, a następnie wykonuje żądaną operację na tych zatwierdzeniach. Zmiana kolejności tagów tylko odwraca różnice przed i po, ale nadal powinna działać.
Gino
a jeśli tag jest pierwszy?
Thomas Decaux
2

Używam tego do uzyskania zatwierdzeń między ostatnimi 2 tagami:

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
wilmol
źródło