現在のコミットにタグを付けたい場合。次のコマンドラインの両方が機能することを知っています。
git tag <tagname>
と
git tag -a <tagname> -m '<message>'
これらのコマンドの違いは何ですか?
コマンドの違いは、一方はタグ メッセージを提供し、他方は提供しないことです。注釈付きのタグには git-show(1) で表示できるメッセージがありますが、注釈のないタグはコミットへの名前付きポインタにすぎません。
ドキュメントによると、「軽量タグを作成するには、-a、-s、または -m オプションを指定せず、タグ名のみを指定してください」。注釈付きタグにメッセージを書き込むためのいくつかの異なるオプションもあります:
git tag <tagname>
と、Git は現在のリビジョンでタグを作成しますが、注釈を求めるプロンプトは表示しません。メッセージなしでタグ付けされます (これは軽量タグです)。git tag -a <tagname>
すると、メッセージを提供するために -m フラグも使用していない限り、Git は注釈を求めるプロンプトを出します。git tag -a -m <msg> <tagname>
と、Git はコミットにタグを付け、提供されたメッセージで注釈を付けます。git tag -m <msg> <tagname>
と、Git は注釈に -a フラグを渡したかのように動作し、提供されたメッセージを使用します。基本的には、タグに注釈やその他の情報を関連付けるかどうかだけです。
大きな違いはここで完全に説明されています。
基本的に、軽量タグは特定のコミットへの単なるポインターです。それ以上の情報は保存されません。一方、注釈付きタグは通常のオブジェクトであり、作成者と日付があり、独自の SHA キーを持っているため参照できます。
誰がいつ、何にタグ付けしたかを知っている場合は、注釈付きタグを使用してください。開発中の特定のポイントにタグを付けたいだけなら、誰がいつ行ったとしても、軽量タグで十分です。
通常は注釈付きのタグを使用しますが、実際にはプロジェクトの Git マスター次第です。