将新提交添加到现有Git标记

时间:2014-01-30 14:44:49

标签: git github git-branch git-svn git-tag

我使用

创建了一个Git标签v1.1
git tag -a v1.1 -m 'my version 1.1'

我推了那个标签。后来,我做了一些与v1.1相关的更改。现在,当我推送新的更改并使用时检查git标签 git describe它向我显示v1.1-g2dcc97

如何将新提交添加到现有标记?

2 个答案:

答案 0 :(得分:30)

如果不违反重要的Git指南,则无法将新提交放入现有标记中:从不(*)修改已发布的提交。

Git中的标签并不是可变的。将标签推出后,请不要管它。

但是,您可以在v1.1之上添加一些更改,并发布v1.1.1v1.2之类的内容。一种方法是

# Create a new branch from tag v1.1
git checkout -b newbranch v1.1

# Do some work and commit it

# Create a new tag from your work
git tag -a -m "Tag version 1.1.1, a bugfix release" v1.1.1

(*)除非你有一个非常特殊的理由这样做,并且只有你完全明白其含义,即便如此,也不要养成习惯。

答案 1 :(得分:4)

如果绝对需要“移动”代码而不是创建新代码,您可以这样做:

NB :正如@Chris所述,请确保您有充分的理由不想创建新代码,因为最佳做法是创建新代码

1。签出代码(分离的HEAD)

git checkout tag/v1.1

2。创建并签出该标记的分支(即分支标记)

git checkout -b my-tagged-branch

*** do work and commit changes ***

3。推送到远程分支。

git push  -u origin my-tagged-branch

如果需要,将分支合并到需要更改的其他分支中(例如,在发生错误修复的情况下)

4. 当仍然在my-tagged-branch时,删除标记

git tag -d v1.1

5. 再次创建标记:这将“移动”标记以指向该分支上的最新提交

git tag v1.1

6. 删除远程

上的标记

git push origin :v1.1

7. 在远程

上创建标记

git push origin v1.1