我目前正在使用具有多个分支的存储库.
当我创建一个标签时,该标签是否指向当时的分支?
换句话说:每当我创建一个标签时,我是否需要切换到该分支内的所需分支和标签,以便标签在该时间点引用该分支?
mkl*_*nt0 162
CharlesB的回答和helmbert的答案都很有帮助,但我花了一些时间来理解它们.这是另一种方式:
git show <tag>以查看标记的详细信息不包含对任何分支的引用,只包含标记指向的提交的ID.
6f6b5997506d48fc6267b0b60c3f0261b6afe7a2)git tag v0.1.0 # tags HEAD of *current* branchgit tag v0.1.0 develop # tags HEAD of 'develop' branchgit describe来描述当前分支:
git describe [--tags] 描述了自此分支历史记录中最新[可能轻量级]标记以来提交的当前分支.git describe可能无法反映最近创建的标签整体.Kal*_*kki 128
如果您通过eg创建标记
git tag v1.0
Run Code Online (Sandbox Code Playgroud)
标记将引用您当前所在分支的最新提交.您可以更改分支并在那里创建标记.
您也可以在标记时引用其他分支,
git tag v1.0 name_of_other_branch
Run Code Online (Sandbox Code Playgroud)
这将为另一个分支的最新提交创建标记.
或者您可以通过直接引用某些提交的SHA1将标记放在任何位置,无论哪个分支
git tag v1.0 <sha1>
Run Code Online (Sandbox Code Playgroud)
Cha*_*esB 32
标签和分支完全不相关,因为标签引用特定的提交,而分支是对最后一次提交历史记录的移动引用.分店去,标签留.
因此,当您标记提交时,如果您向他提供要标记的SHA1,则git不关心检出哪个提交或分支.
我甚至可以通过引用分支来标记(然后它将标记分支的尖端),然后说分支的提示在其他地方(git reset --hard例如),或者删除分支.我创建的标签不会移动.
在git tag <TAGNAME>没有任何其他参数的情况下调用时,Git将从您当前的HEAD(即当前分支的HEAD)创建一个新标记.在向此分支添加其他提交时,分支HEAD将跟上这些新提交,而标记始终引用相同的提交.
在调用时,git tag <TAGNAME> <COMMIT>您甚至可以指定用于创建标记的提交.
无论如何,标签仍然只是某个提交(不是分支)的"指针".
小智 6
我们可以为一些过去的提交创建一个标签:
git tag [tag_name] [reference_of_commit]
Run Code Online (Sandbox Code Playgroud)
例如:
git tag v1.0 5fcdb03
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82258 次 |
| 最近记录: |