我使用
创建了一个Git标签v1.1
git tag -a v1.1 -m 'my version 1.1'
我推了那个标签。后来,我做了一些与v1.1
相关的更改。现在,当我推送新的更改并使用时检查git标签
git describe
它向我显示v1.1-g2dcc97
。
如何将新提交添加到现有标记?
答案 0 :(得分:30)
如果不违反重要的Git指南,则无法将新提交放入现有标记中:从不(*)修改已发布的提交。
Git中的标签并不是可变的。将标签推出后,请不要管它。
但是,您可以在v1.1
之上添加一些更改,并发布v1.1.1
或v1.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
时,删除标记 p>
git tag -d v1.1
5. 再次创建标记:这将“移动”标记以指向该分支上的最新提交
git tag v1.1
6. 删除远程
上的标记 git push origin :v1.1
7. 在远程
上创建标记 git push origin v1.1