因为线上代码有些需要调整的,所有用hotfix
分支进行了补丁。但提交时不小心把develop
分支的merge
到了hotfix
并一路提交到了远程的hotfix
分支上。
当前已经进入下一次的迭代了,本次更新补丁不希望把下一次迭代的代码提交到线上,所以此时需要进行版本回退。
Git中,每次commit提交都会生成一个历史纪录。使用 git log
查看commit历史:
其实 git log
有个 --oneline
参数。简化返回内容,更易于我们获取信息
每个记录都有一个与之对应的 commit id
,所以可以使用命令 git reset --hard "commit_id"
来回退到相应的版本。
除此之外,在Git中,使用 HEAD
来代表当前版本,如需回退到前一个版本,可以使用命令 git reset --hard HEAD^
,前两个版本则用HEAD~2
表示,以此类推。
可以发现,之前版本commit ID已经不见了,此时就已经回退到指定版本了。
当你发现你回退的之前版本又是你希望用到的版本,此时你已经忘记了其对应的commit ID了。该怎么办?
这时候可以使用 git reflog
命令来查看操作历史:
$ git reflog
47384c8 HEAD@{0}: reset: moving to 47384c8
ec88247 HEAD@{1}: reset: moving to ec88247
...
此时可以根据commit信息找到对应commit ID后执行 git rest
操作就可以回到一开始回退前的版本。
基于Nginx+Supervisord+uWSGI+Django1.11.1+Python3.6.5构建