軽量タグと注釈付きタグの違いを気にする必要があるのはなぜですか? 質問する

軽量タグと注釈付きタグの違いを気にする必要があるのはなぜですか? 質問する

私は昨年、日常の VCS として Subversion から Git に切り替えましたが、いまだに「Git の考え方」の細かい点を理解しようとしています。

最近私を悩ませているのは、「軽量」タグと注釈付きタグと署名付きタグのどちらが良いかという問題です。注釈付きタグは軽量タグよりも実際の用途で優れていることは広く認められているようですが、なぜそうなのかという説明は、常に次のどちらかに集約されるようです。「ベストプラクティスだから」または「彼らは違うから」残念ながら、それがベストプラクティスである理由や、それらの違いが私の Git の使用にどのように関係するかがわからないため、これらは非常に不満足な議論です。

Git に初めて切り替えたとき、軽量タグは最高のものに思えました。コミットを指して「それは 1.0 でした」と言うだけで済みました。タグがそれ以上のものを必要とする理由が理解できませんが、世界中の Git エキスパートが勝手に注釈付きタグを好むとは到底信じられません。それで、一体何がそんなに騒がれているのでしょうか?

(ボーナスポイント: なぜタグに署名する必要があるのでしょうか?)

編集

私は説得に成功した注釈付きのタグは良いことです。誰がいつタグ付けしたかを知ることは重要です。フォローアップとして、良いタグ注釈に関するアドバイスはありますか? どちらもgit tag -am "tagging 1.0" 1.0、前のタグ以降のコミット ログを要約しようとすると、戦略を失うように感じます。

ベストアンサー1

注釈付きタグの大きな利点は、誰が作成したかがわかることです。コミットと同様に、誰が作成したかがわかると便利な場合があります。開発者で、v1.7.4 がタグ付けされている (準備完了と宣言されている) のを見て、よくわからない場合は、誰に連絡しますか? 注釈付きタグに名前が記載されている人です。(不信感の強い世界に住んでいる場合は、これにより、タグ付けすべきでないタグを付けても逃げられないという事態を防ぐこともできます。) 消費者の場合、その名前は権威の証です。つまり、Junio Hamano が、このバージョンの git をリリースすると言っているのです。

他のメタデータも役に立つことがあります。最終コミットが行われた日時だけでなく、そのバージョンがリリースされた日時も知っておくと便利な場合があります。また、メッセージが役に立つ場合もあります。特定のタグの目的を説明するのに役立つかもしれません。リリース候補のタグには、ステータスや ToDo リストが少し含まれているかもしれません。

タグに署名するのは、他の署名とほとんど同じです。タグに署名すると、心配性な人のためにもう 1 段階のセキュリティが提供されます。ほとんどの人はタグに署名しませんが、ソフトウェアをコンピューターにインストールする前にすべてを検証したい場合は、タグに署名する必要があるかもしれません。

編集:

タグ注釈に何を書くかという点については、おっしゃるとおりです。必ずしも役に立つことはあまりありません。バージョン番号タグの場合、そのバージョンを示すものであることは暗黙的に理解されており、他の場所の変更ログに満足している場合は、そこにタグを付ける必要はありません。この場合、最も重要なのはタグ付け者と日付です。他に考えられるのは、テスト スイートからの承認のスタンプだけです。git.git のタグを見てください。すべて「Git 1.7.3 rc1」のような内容で、私たちが本当に気にしているのは、Junio Hamano の名前だけです。

ただし、あまり明白に名前が付けられていないタグの場合、メッセージははるかに重要になる可能性があります。単一のユーザー/クライアントの特定の特殊目的バージョン、重要な非バージョン マイルストーン、または (前述のように) 追加情報を含むリリース候補にタグを付けることも考えられます。その場合、メッセージははるかに役立ちます。

おすすめ記事