我得到了一个带有标签(v1、v2等)的主分支,..clients仍然可以从build server下载不同的版本。我们需要在每个版本上放置一个热修复(安全问题)。现在我可以从每个标签中拉出,应用热修复,但不知道如何再次推送回相同的标签?我不想再把旧版本推到主分支的前面..我不知道怎样做才是正确的?
发布于 2014-11-21 03:17:35
假设master包含热修复提交,并且已经领先于v1和v2
git checkout v1
git cherry-pick <commit-with-hotfix>
git tag v1.1
git checkout v2
git cherry-pick <commit-with-hotfix>
git tag v2.1
git push --tags origin
git checkout master在签出标签时,您会收到有关detached HEAD的警告。别担心。
将标签从一个版本移动到另一个版本是非常邪恶和粗鲁的,因为在野外,每个人都是通过标签来引用你的软件版本的。如果你这样做了,当你提到v1时,你永远不会知道某人是否有热修复版本。因此有了v1.1和v2.1。
git help tag有一个很长的关于重新标记的章节。一般建议:不要这样做。
如果你绝对坚持在同一个标签下更新软件,那么,它们可以被删除。使用v1的示例
git checkout v1
git cherry-pick <commit-with-hotfix>
git tag -d v1
git tag v1
git push --force --tags originhttps://stackoverflow.com/questions/27047569
复制相似问题