我正在接触 git tagging,但我以前的背景是 Subversion,其中“标签”实际上只是副本,而不是“真正的”标签......
如果我向 git 存储库添加标签,它是应用于所有分支还是仅应用于当前分支?
例如,如果我目前有这些分支(git branch -v
):
* master deadbeef My master head comment
dev baddfeed My def head comment
如您所见,当前签出的分支是 master。现在假设我git tag -a TAGNAME
, does TAGNAME
仅适用于deadbeef
(主分支)或baddfeed
(开发分支)也是如此?
例如,假设我在签出标签之前切换到 dev 分支(即不是创建标签的分支):
git checkout dev
git checkout TAGNAME
然后我会结帐吗baddfeed
或者标签签出(第二行)会将我切换回主分支(创建标签的位置)并给我签出deadbeef
?
(或者第三个选项,我对创建和恢复标签的理解是否有太多缺陷或太简单,以至于答案不能像这两个选项之一一样简单?)
另外,如果我使用轻量级标签(git tag TAGNAME
)而不是带注释的标签?
假设您在分行myBranch
。然后您创建一个名为的标签myTag
-----A-----B-----C-----D-----H-------I-----> master
\
\
\---E----F-----G-----> myBranch
|
myTag
该标签将仅出现在提交对象上myBranch
分支。我也使用过 CVS,它也标记修订版本,而不是所有分支(但在 CVS 分支中是特殊标记)。我不认为。
如果您结账myTag
,你将在提交中G
的例子。您不能在不同分支上创建具有相同名称的标签。如果您这样做,您将移动标签。
与此相关的带注释的标签没有区别。
注意:检查标签时,您最终会进入“分离头”模式。除非您从签出的标签开始创建另一个分支,否则您的更改将会丢失。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)