挑选标签会影响后者吗?



在进行发布时,我检查了以前发布的标签并挑选了新项目(使用git cherry-pick <commit-id>)。然后,我使用git tag <tag-name>创建了一个新标签。

这会影响我挑选的更改到的旧标签吗?

一句话:不。标签一旦被创建,就不会像分支引用那样四处移动。您需要故意使用

git tag --force v1.0 <some-other-commit>

v1.0标签移动到其他提交。在标记的提交上选择其他提交(换句话说,应用那些其他提交引入的更改)不会影响标记。

作为一个例子,如果v1.0是一个标记,并且您的历史记录如下所示,

A -- B [master,v1.0]
 
  C -- D [develop]

然后运行

git checkout v1.0
git checkout -b rc1.1
git cherry-pick C
git cherry-pick D

你会得到

A -- B [master,v1.0]
     
      C' -- D' [HEAD,rc1.1]  
   
    C -- D [develop]

v1.0标签将保持不变,仍然指向提交b。

当您选择一个提交时,Git实际上是从该提交创建一个补丁(找出它引入了什么样的更改),并将其应用到当前的HEAD。在这个过程中,将创建一个全新的提交,而不会链接到您精心挑选的原始提交。Git只会复制提交信息和提交作者,并在新的提交中重用它;但除此之外,这是一个完全独立的提交。

因此,这与您自己创建一个新提交没有什么不同。所以,不,像提交任何东西一样,挑选不会影响其他提交或标签。

相关内容

  • 没有找到相关文章

最新更新