1. ホーム
  2. git

[解決済み] 最後のタグ以降のすべての git コミットを取得する

2022-04-27 21:19:42

質問

コミットにタグを付けるとき、最後にタグ付けされたコミット以降に何が変わったかを知る必要があります。例えば

a87a6sdf87a6d4 Some new feature
a87a6sdf87a6d3 Some bug fix
a87a6sdf87a6d2 Some comments added
a87a6sdf87a6d1 Some merge <- v1.4.0

この例では、最新の 3 つのコミットについて知りたい、あるいは上記のようなログを出力して、両方のコミットとそのタグ (もしあれば) を表示できるようにしたい、と考えています。そして、新しい機能が追加されたことを確認したら、v1.5.0というタグを付けたいと思います。

どのように対処しているのですか?タグはこうやって使うものなのでしょうか?タグのメッセージには何を書けばいいんだろう?私はいつも空欄にしています。 git tag -a v1.2.3 -m ''

解決方法は?

git log <yourlasttag>..HEAD ?

あなたの例のように、コミットID+メッセージで1行にまとめたい場合は、次のようにします。

git log <yourlasttag>..HEAD --oneline

また、最新のタグがわからない場合や、ダイナミックに表示させたい場合は、Windowsで次のようにします。

for /f "delims=" %a in ('git describe --tags --abbrev^=0') do @set latesttag=%a
git log %latesttag%..HEAD --oneline

そして、Linux / git bash / windows bashの場合。

git log $(git describe --tags --abbrev=0)..HEAD --oneline

また、履歴のタグがわかっていて、そのタグから現在の状況までを印刷したい場合は、さらに --decorate で、その間にあるすべてのタグを出力します。