我正在学习Git标签,但我的以前的背景是在Subversion中,“tags”只是复制品,而不是“真正”的标签...
如果我向Git仓库添加一个标签,它会应用于所有分支还是仅适用于当前分支?
例如,如果我当前有这些分支(git branch -v
):
* master deadbeef My master head comment
dev baddfeed My def head comment
目前检出的分支是master,如您所见。现在假设我运行git tag -a TAGNAME
,那么TAGNAME
只适用于deadbeef
(master分支)还是baddfeed
(dev分支)也适用?
例如,假设我在检出标签之前切换到了dev分支(即不是创建标签的分支):
git checkout dev
git checkout TAGNAME
我会得到一个指向baddfeed
的checkout吗?还是检出标签(第二行)会将我切换回主分支(标签创建时所在的位置),然后使我得到一个指向deadbeef
的checkout?(或者第三个选项,我对创建和恢复标签的理解太错误或太简单,以至于答案不可能像这两个选项中的一个那么简单?)此外,如果我使用轻量级标签(
git tag TAGNAME
)而不是带注释的标签,问题的答案是否会改变?