git 退回到指定tag版本
可能用到的命令:
查看当前分支:git branch
切换分支:git checkout master(分支名)
查看tag:git tag
查看当前git状态:git status
显示所有提交过的版本信息: git log
查看所有分支的所有操作记录: git reflog
1. 查看某个tag的详情:git show v1.3.5
返回:commit backid(回退命令就用这个id)
2. 通过commit的id回退:git reset --hard backid
如果这个时候你立马投入与bug的战斗,修改后发版本,那么你就犯了严重的错误,因为你修改后的代码是无法与正在开发的版本合并哒,也就是说你的修改并不能加入现有的代码。所以: 特别注意:通过标签回退版本后,要马上拉一个分支,然后当前主干分支要立即回到原来的位置,否则正在开发的代码可能白干了,接着在刚拉的分支上修改bug,修改完毕合并到主干上 (验证过,是对的)
3. 回退版本后,立即拉取分支,这里取名bugfix分支:git checkout -b bugfix
4. 请先回到主干分支上:git checkout master
5. 切换到bugfix分支,修改bug。就可以按照原先的开发流程继续工作
操作过程中容易出现直接checkout指定的tag,这种是有问题的,
git checkout tag_name 这时候 git 可能会提示你当前处于一个“detached HEAD" 状态。(detached 分离的,这时候head指向了tag,但是idea的version control内能看到一个叹号!)
因为 tag 相当于是一个快照,是不能更改它的代码的。出现这种问题,可以直接pull一次代码,这时候head就会转到操作之前的HEAD
参考文章:
gitlab回滚到指定tag版本 https://blog.51cto.com/wangqh/2129095
git使用tag恢复到以前的版本 https://blog.csdn.net/fzk2008/article/details/59575834