在日常的开发流程中,我们总会遇到一些bug需要发布 hotfix 版本,可能需要针对某一tag(因为可能部署在了不同的环境)。那就来问题了,如何从 tag 恢复版本,并重新打tag 发布?
恢复版本
首先就是从 develop 分支(或者是最新的开发分支上)恢复到需要修改的 tag 版本上:
查找tag对应的 commit
首先在命令行中:
git tag
查看 tag 列表,确认需要恢复的 tag 名称,这里选择:3.28.2
使用
git show 3.28.2
获取tag 详情,主要是为了找出打 tag 时对应的 commit id:
比如这里的 a27e46
(只需记住 commit id 的前六位即可):
版本回退
有了对应了 commit id 就可以回到发版的时候的代码了:
git reset --hard a27e46
这是可以看到命令行输出 HEAD is now at a27e46 commit message
分支切换
注意,这时候需要立马拉取新的分支,比如这里的: fix-bug
git checkout -b fix-bug
这时,当前所在分支已经在 fix-bug
上了。这时需要切换回刚才的分支,保证刚才分支的最新:也是相同的,使用 reset
命令更新到最新的 commit id 即可。
修改更新tag
切换回我们需要更新的版本分支 fix-bug
。
进行修改之后,使用一下命令创建 tag 并提交:
git add .
git commit -m "fix(base): add some commit message"
git tag 3.28.4
以上命令是暂存本地的修改,并基于当前的修改,在本地生成新的tag
:3.28.4。
本地生成了 tag 自然需要更新到远程,使用:
git push origin 3.28.4
即可更新到远程。