Git中如何移除较新提交上绑定的指定标签?
操作步骤
Git 中同一个标签名同一时间只能指向一个提交,你看到4个提交都关联v1.0.0,是因为当前标签指向最新提交d,提交链上的c/b/a作为历史提交都会被归到该标签的覆盖范围内。要让v1.0.0仅关联a、b两个提交,只需要把标签移动到提交b即可——a是b的父提交,移动后标签的可达历史仅包含b和a,c、d作为b之后的提交,不会再关联v1.0.0。
本地标签修正
- 删除本地已有的
v1.0.0标签:
git tag -d v1.0.0
- 在提交
b上重新创建v1.0.0标签,轻量标签直接执行:
git tag v1.0.0 b
如果需要创建带发布说明的附注标签,用以下命令,替换说明内容即可:
git tag -a v1.0.0 b -m "Release version 1.0.0"
同步到远端仓库
如果之前已经把旧标签推送到远端,需要先删除远端的旧标签引用,再推送新标签:
- 删除远端的旧
v1.0.0标签:
git push origin :refs/tags/v1.0.0
- 推送新创建的标签到远端:
git push origin v1.0.0
验证结果
执行以下命令查看标签指向的提交,确认输出指向提交b即操作成功:
git rev-parse v1.0.0
如果本地GUI工具仍缓存了旧的标签关联,执行强制拉取标签命令刷新即可:
git fetch origin --tags --force
内容的提问来源于stack exchange,提问作者Axel
相关产品推荐
相关产品推荐

