我可以将修补程序推送到git中的标记

use*_*080 1 git git-branch

我有一个带标签的主分支(v1,v2等)..客户端仍然从构建服务器下载不同的版本.我们需要在每个版本上加上一个热修复(安全问题).现在我可以从每个标签中提取应用热修复但不知道如何再次推回到相同的标签?我不想再将旧版本推到主分支的前面..我不知道这是一种正确的方法吗?

SzG*_*SzG 8

假设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
Run Code Online (Sandbox Code Playgroud)

签出标签时,您会收到警告detached HEAD.别担心.

将标签从一个版本移动到另一个版本是非常邪恶和粗鲁的,就像在野外一样,每个人都通过标签引用您的软件版本.如果你这样做,你将永远不知道有人在引用时是否有hotfixed版本v1.因此v1.1v2.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 origin
Run Code Online (Sandbox Code Playgroud)