我目前正在使用一个具有多个分支的存储库。

当我创建一个标记时,该标记是否引用当时的分支?

换句话说:每当我创建一个标记时,我是否需要切换到所需的分支和该分支中的标记,以便标记在该时间点引用该分支?


当前回答

我们可以为一些过去的提交创建一个标签:

git tag [tag_name] [reference_of_commit]

eg:

git tag v1.0 5fcdb03

其他回答

标记和分支是完全不相关的,因为标记引用的是特定的提交,而分支是对历史记录的最后一次提交的移动引用。树枝走了,标签留了。

所以当你标记一个提交时,git并不关心哪个提交或分支被签出,只要你向他提供你想要标记的内容的SHA1。

我甚至可以通过引用一个分支来标记(然后它会标记分支的尖端),然后说分支的尖端在其他地方(git重置——例如很难),或者删除分支。但是我创建的标签不会移动。

一个相关且有用的命令是

git branch --contains tag/<tag>

这将为您提供所有分支的标签上的列表

这里有更多细节…

如果你通过例如。

git tag v1.0

标记将引用您当前所在分支的最近一次提交。你可以改变分支并在那里创建一个标签。

你也可以在标记时引用另一个分支,

git tag v1.0 name_of_other_branch

这将为另一个分支的最近提交创建标记。

或者,通过直接引用某个提交的SHA1,您可以将标记放在任何地方,无论哪个分支

git tag v1.0 <sha1>

我们可以为一些过去的提交创建一个标签:

git tag [tag_name] [reference_of_commit]

eg:

git tag v1.0 5fcdb03

如果你想标记你所在的分支,那么输入:

git tag <tag>

用:

git push origin --tags