问题描述
我有一个标记 v1
设置为旧提交。这个版本有一个错误,我想更新它。
我跑了get checkout v1
。我已经更新了代码来修复这个错误,然后是 git- added 和 git-commited。
现在我想更新标签 v1
以引用这个新提交。
我试过git push -f origin v1
。这不起作用。我收到以下回复:
Everything up-to-date
有没有办法做到这一点?最好,我想避免创建一个新分支,但如果必须这样做,我怎样才能避免污染分支命名空间?之后我可以删除分支吗?
解决方法
标签通常用于查看特定版本的文件,文件一旦被标记就不会被更改,例如版本 1.0 如果您想进行更改并在之后重新标记,
- 从您要更新的标签创建一个新分支,例如分支 a。
- 在新分支 a 上创建您的提交。
- 当您准备好用分支 a 替换标记时,删除您从中创建分支 a 的标记。
- 从分支 a 创建新标签
- 如果之后要删除分支 a,则删除分支 a。
我终于想出了一个不需要创建新分支的解决方案。
-
git checkout tag_name
-
进行本地更改
-
git add .
和git commit -m "commit message"
-
git tag -fa tag_name
-
git push -f origin master --tags