在标签上挑选樱桃会影响后者吗?

Str*_*ger 5 git git-tag git-cherry-pick

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

这会影响我精心挑选的旧标签吗?

jub*_*0bs 6

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

git tag --force v1.0 <some-other-commit>
Run Code Online (Sandbox Code Playgroud)

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

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

A -- B [master,v1.0]
 \
  C -- D [develop]
Run Code Online (Sandbox Code Playgroud)

然后你跑

git checkout v1.0
git checkout -b rc1.1
git cherry-pick C
git cherry-pick D
Run Code Online (Sandbox Code Playgroud)

你最终会得到

A -- B [master,v1.0]
 \    \
  \    C' -- D' [HEAD,rc1.1]  
   \
    C -- D [develop]
Run Code Online (Sandbox Code Playgroud)

该v1.0标签将留在原地,在提交B.仍指向