Git のタグとブランチの違いは何ですか? ここではどちらを使用すればよいですか? 質問する

Git のタグとブランチの違いは何ですか? ここではどちらを使用すればよいですか? 質問する

タグブランチの使い方が理解しにくいです

現在のバージョンのコードを、そして今、私は特定の機能のためにそのコードのサブセットに取り組んでいます。他の数人の開発者もこれに取り組んでいますが、私たちのグループのすべての開発者がこの機能に関心があるわけではありません。ブランチとタグのどちらを作成するべきでしょうか? どのような状況で、どちらを使用すべきでしょうか?

ベストアンサー1

理論的な観点から:

  • タグは、特定のリビジョンのシンボリック名です。タグは常に同じオブジェクト (通常は同じリビジョン) を指し、変更されることはありません。
  • ブランチは開発ラインのシンボル名です。新しいコミットはブランチの上に作成されます。ブランチ ポインターは自然と進み、どんどん新しいコミットを指します。

技術的な観点から:

  • タグは名前空間内に存在しrefs/tags/タグ オブジェクト(注釈付き、オプションで GPG 署名されたタグ) またはコミット オブジェクト(ローカル名にはあまり使用されない軽量タグ) を直接ポイントしたり、非常にまれにツリー オブジェクトまたはBLOB オブジェクト(GPG 署名など)を指定したりすることもできます。
  • ブランチは名前空間内に存在し、コミット オブジェクトrefs/heads/のみを指すことができます。ポインターはブランチ (シンボリック参照) を参照するか、コミット (分離された HEAD または名前のないブランチ) を直接参照する必要があります。HEAD
  • リモート追跡ブランチは名前空間に存在しrefs/remotes/<remote>/、リモート リポジトリ内の通常のブランチに従います<remote>

参照git用語集マニュアルページ:

支店

「ブランチ」とは、アクティブな開発ラインのことです。ブランチの最新のコミットは、そのブランチの先端と呼ばれます。ブランチの先端は、ブランチ ヘッドによって参照され、ブランチで追加の開発が行われると、ブランチ ヘッドが前進します。単一の Git リポジトリは、任意の数のブランチを追跡できますが、作業ツリーはそのうちの 1 つのブランチ (「現在の」または「チェックアウトされた」ブランチ) とのみ関連付けられ、HEAD はそのブランチを指します。

鬼ごっこ

タグまたはコミット オブジェクトを指す参照。ヘッドとは対照的に、タグはコミットによって変更されません。タグ (タグ オブジェクトではない) は に保存されます$GIT_DIR/refs/tags/。[...]。タグは、コミット祖先チェーン内の特定のポイントをマークするために最も一般的に使用されます。

タグオブジェクト

別のオブジェクトを指す参照を含むオブジェクト。コミット オブジェクトと同様に、メッセージを含めることができます。(PGP) 署名を含めることもできます。その場合は、「署名付きタグ オブジェクト」と呼ばれます。

おすすめ記事