因此,两个月前,我将我们在SVN中的代码库迁移到了Git,并提供了完整的变更集历史记录.紧接着,我们标记了一个新版本并继续工作.因此,虽然我们继续使用新标签,但有些人继续修复SVN中旧标签中的错误,现在我想将所有这些更改都添加到Git中的标签中.
我可以克隆标签并让Git让我提交它,但是我不能用git-push推回任何东西.检查git-log,提交就在那里,但git-st告诉我,我目前不在任何分支上.
所以互联网,我怎么能承诺一个旧的git标签?
如果有人在搜索"替换git标签"或类似内容后来到这里,我推荐以下方法:
git tag -dgit checkout git tag -a git push -f
例如:
git checkout 2.0 git tag -d v2.0 git tag -a v2.0 -m"Version 2.0" git push origin v2.0 -f
希望这有助于某人.
标签不可移动.一旦创建了指向特定提交的标记,您就无法在以后更改该标记.
听起来你打算创建一个分支.您应该创建一个新的分支(git branch branchname && git checkout branchname
)以确保不会丢失您的提交.然后将该分支推送到存储库,让您的发布/错误修复开发人员在该分支中工作以进行发布.
你的意思是分支,而不是标记.Git中的标签是主分支中的时间点书签.虽然您可以覆盖标记(git tag -f
),但不建议这样做.如果标签尚未部署,我将仅覆盖标签.
如果用户正在使用用户创建旧标记的相同分支,则首先创建新的更改列表.否则签出标签,然后创建新的更改列表.然后使用以下步骤使用新的更改列表编号更新现有标记
git tag -f
git push -f --tags
总计0(delta 0),重用0(delta 0)+ ...
- >
(强制更新)