Git更新标签而不创建新分支?

问题描述

我有一个标记 v1 设置为旧提交。这个版本有一个错误,我想更新它。

我跑了get checkout v1。我已经更新了代码来修复这个错误,然后是 git- added 和 git-commited。

现在我想更新标签 v1 以引用这个新提交。

我试过git push -f origin v1。这不起作用。我收到以下回复

Everything up-to-date

有没有办法做到这一点?最好,我想避免创建一个新分支,但如果必须这样做,我怎样才能避免污染分支命名空间?之后我可以删除分支吗?

解决方法

标签通常用于查看特定版本的文件,文件一旦被标记就不会被更改,例如版本 1.0 如果您想进行更改并在之后重新标记,

  1. 从您要更新的标签创建一个新分支,例如分支 a。
  2. 在新分支 a 上创建您的提交。
  3. 当您准备好用分支 a 替换标记时,删除您从中创建分支 a 的标记。
  4. 从分支 a 创建新标签
  5. 如果之后要删除分支 a,则删除分支 a。
,

我终于想出了一个不需要创建新分支的解决方案。

  1. git checkout tag_name

  2. 进行本地更改

  3. git add .git commit -m "commit message"

  4. git tag -fa tag_name

  5. git push -f origin master --tags