現在、複数のブランチを持つリポジトリを使用しています。
タグを作成すると、そのタグは当時のブランチを参照しますか?
言い換えれば、タグを作成するたびに、その時点でタグがそのブランチを参照するように、目的のブランチとそのブランチ内のタグに切り替える必要がありますか?
たとえば、タグを作成する場合
git tag v1.0
タグは、現在使用しているブランチの最新のコミットを参照します。ブランチを変更して、そこでタグを作成できます。
タグ付け中に他のブランチを参照することもできます。
git tag v1.0 name_of_other_branch
これにより、他のブランチの最新のコミットへのタグが作成されます。
または、コミットのSHA1を直接参照することで、どのブランチに関係なく、どこにでもタグを配置できます
git tag v1.0 <sha1>
タグは特定のコミットを参照し、ブランチは履歴の最後のコミットへの移動参照であるため、タグとブランチはまったく無関係です。ブランチは消えますが、タグは残ります。
したがって、コミットにタグを付けるとき、タグ付けしたいもののSHA1を彼に提供すれば、gitはどのコミットまたはブランチがチェックアウトされているかを気にしません。
ブランチを参照してタグ付けすることもできます (その後、ブランチの先端にタグが付けられます)。後で、ブランチの先端が別の場所にあることを伝えたり (git reset --hard
たとえば)、ブランチを削除したりできます。しかし、作成したタグは移動しません。
パラメーターを追加せずに呼び出すとgit tag <TAGNAME>
、Git は現在の HEAD (つまり、現在のブランチの HEAD) から新しいタグを作成します。このブランチに追加のコミットを追加すると、ブランチ HEAD はそれらの新しいコミットに対応しますが、タグは常に同じコミットを参照します。
呼び出すときgit tag <TAGNAME> <COMMIT>
に、タグの作成に使用するコミットを指定することもできます。
とにかく、タグは特定のコミット (ブランチではありません) への単なる「ポインター」です。