这是我的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
我们知道sdf2sdf
和2d34d4
是相同的提交,即使它们具有不同的提交ID。但是标记将保留在2d34d4
上,并且不会更新为sdf2sdf
。
当我使用git rebase时,有什么方法可以使标记保持新提交吗?
答案 0 :(得分:2)
标签更多地用于标记时间上固定的内容(例如发行版)。但是,如果要使用标签,则可以手动使用git tag -f tagName commitHash
对其进行更新。
这就是说,也许您想使用分支而不是标签。分支在“移动”方面更为灵活。假设您具有以下条件:
commit beba35 (yourBranch)
aaa
commit 2d34d4 (yourBranchTag)
bbb
commit be2f8a
cccc
(masterBranch)
您可以在yourBranch
之上重新设置masterBranch
,而不是在yourBranchTag
之上重新设置masterBranch
,然后在{{1 }}。
您最终不得不按顺序维护它们,但是它们都将保留在同一祖先行中。
拥有这个yourBranch
分支并不意味着您将保留或合并它,也许仅仅是在日志中保留一个“书签”。一旦完成yourBranchTag
的使用并准备将其合并到yourBranchTag
中,就可以抛弃yourBranch
。
答案 1 :(得分:0)
没有直接的方法告诉git“将标记与重新定位一起移动”。
您必须手工完成:
git tag -f ATag sdf2sdf