442

現在のコミットにタグを付けたい場合。次のコマンドラインの両方が機能することを知っています。

git tag <tagname>

git tag -a <tagname> -m '<message>'

これらのコマンドの違いは何ですか?

4

3 に答える 3

339

TL;DR

コマンドの違いは、一方はタグ メッセージを提供し、他方は提供しないことです。注釈付きのタグには 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 フラグを渡したかのように動作し、提供されたメッセージを使用します。

基本的には、タグに注釈やその他の情報を関連付けるかどうかだけです。

于 2012-07-16T23:39:25.467 に答える
59

大きな違いはここで完全に説明されています

基本的に、軽量タグは特定のコミットへの単なるポインターです。それ以上の情報は保存されません。一方、注釈付きタグ通常のオブジェクトであり、作成者と日付があり、独自の SHA キーを持っているため参照できます。

誰がいつ、タグ付けしたかを知っている場合は、注釈付きタグを使用してください。開発中の特定のポイントにタグを付けたいだけなら、誰がいつ行ったとしても、軽量タグで十分です。

通常は注釈付きのタグを使用しますが、実際にはプロジェクトの Git マスター次第です。

于 2015-04-04T19:53:31.103 に答える