git rebase并保持标签更新[重复]

问题描述 投票:1回答:2

这个问题在这里已有答案:

这是我的git日志

commit beba35
aaa

commit 2d34d4
bbb(tag: ATag)

commit be2f8a
cccc

如果我使用git rebase并更改be2f8a,那么我将获得一个新的git日志

commit as2sd2e
aaa

commit sdf2sdf
bbb

commit be2f8a
cccc

我们知道,sdf2sdf2d34d4是相同的提交,即使它们有不同的提交ID。但标签将留在2d34d4,不会更新到sdf2sdf

当我使用git rebase时,有什么办法让标记跟随新提交?

git git-rebase
2个回答
2
投票

标签更多的是标记时间固定的东西(例如发布)。但是,如果要使用标记,可以手动使用git tag -f tagName commitHash进行更新。

这就是说,也许你会想要使用分支而不是标签。分支机构在“四处走动”方面更加灵活。说你有以下内容:

commit beba35 (yourBranch)
aaa

commit 2d34d4 (yourBranchTag)
bbb

commit be2f8a
cccc

(masterBranch)

而不是在yourBranch之上重新定位masterBranch,你可以在yourBranchTag之上重新定位masterBranch,然后在yourBranch之上重新定位yourBranchTag

你最终必须按顺序维护它们,但它们都会保持在同一个祖先的位置。

拥有这个yourBranchTag分支并不意味着你会保留它或合并它,也许只是在你的日志中保留一个“书签”。一旦你完成yourBranch并准备好在masterBranch合并,你可以放弃yourBranchTag


0
投票

没有简单的方法可以告诉git“将该标签与rebase一起移动”。

你必须手工完成:

  • 发现新的目标提交
  • (像@padawin建议的那样)将标签移动到此提交git tag -f ATag sdf2sdf
© www.soinside.com 2019 - 2024. All rights reserved.