我被 git 标签弄湿了,但我以前的背景是在 Subversion 中,“标签”实际上只是副本,而不是“真实”标签......
如果我向 git repo 添加标签,它是应用于所有分支还是仅应用于当前分支?
例如,如果我目前有这些分支 ( git branch -v
):
* master deadbeef My master head comment
dev baddfeed My def head comment
如您所见,当前签出的分支是 master。现在假设 Igit tag -a TAGNAME
是否也TAGNAME
仅适用于deadbeef
(master 分支) 或baddfeed
(dev 分支)?
例如,假设我随后在签出标签之前切换到 dev 分支(即,不是创建标签的分支):
git checkout dev
git checkout TAGNAME
然后我是否baddfeed
会结帐或者标签结帐(第二行)会将我切换回主分支(创建标签的位置)并给我结帐deadbeef
?(或者第三个选项,我对创建和恢复标签的理解是否过于有缺陷或过于简单,以至于答案不能像这两个选项之一那样简单?)
另外,如果我使用轻量级标签 ( git tag TAGNAME
) 而不是带注释的标签,我的问题的答案是否会改变?