タグ間のGitログ


84

タグ付けされた2つのコミット間のログを出力しようとしています。

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 logのマニュアルを読みましたが、あまり役に立ちません。

回答:


149

範囲を示すには省略記号が必要です。試してみてくださいgit log tag1..tag2


25
...対称的な違いが得られます(両方のタグから到達できないコミットのみが表示されます)、私はあなたが望むと思います..
knittl 2011年

14
注:タグは昇順である必要があります。newtag..oldtag動作しません
balki 2014

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.