Git-Protokoll zwischen Tags

82

Ich versuche, das Protokoll zwischen zwei getaggten Commits auszugeben.

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

Wenn ich es dann tue:

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

Es gibt alle Commits seit dem Start des Repos aus, was nicht das ist, was ich will. Ich habe das Git-Log-Handbuch gelesen, aber es hilft nicht viel.

Digital
quelle

Antworten:

146

Sie benötigen ein Auslassungszeichen, um einen Bereich anzugeben. Versuchen Sie es git log tag1..tag2.

Noufal Ibrahim
quelle
25
...wird Ihnen den symmetrischen Unterschied geben (zeigt nur Commits an , die von beiden Tags nicht erreichbar sind), ich denke, Sie wollen..
knittl
14
Hinweis: Tags sollten in aufsteigender Reihenfolge sein. newtag..oldtagfunktioniert nicht
balki
4
Betreff: "Tags sollten in aufsteigender Reihenfolge sein. Newtag..oldtag funktioniert nicht": Ich denke, git übersetzt die Tags zuerst in ihre jeweiligen Commits und führt dann die angeforderte Operation für diese Commits aus. Das Ändern der Reihenfolge der Tags kehrt nur die Vorher- und Nachher-Unterschiede um, sollte aber trotzdem funktionieren.
Gino
1

Ich benutze dies, um die Commits zwischen den letzten 2 Tags zu erhalten:

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
quelle