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.

Antworten:


146

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.