开发过程中遇到合并到远程仓库代码有问题,急需保证线上正常运行,回滚成为唯一选项时,可以使用如下操作。
注意:最重要的一定要保证回滚操作前有备份,总之在做任何可能影响到数据的操作之前,确保你有备份或另外的分支保留了当前的工作状态。这也是作为一个有负责人的程序员必须有的习惯。
操作步骤:
1、确保你本地与远程仓库对应的分支状态是一致最新的
git fetch origin // 更新同步成与远程仓库的状态一致
(操作后可以使用 git log对比查看一下)
2、查找到要回滚到的历史提交
git log // 这个可以查找历史提交的所有记录
3、操作强制回滚本地到历史提交记录哈希
git reset --hard abcdefg // abcdefg代表你git log中找到的提交合并记录的哈希
(这一步操作有个小技巧在新起的一个命令操作中台上操作,git log的记录不要关闭,就可以多次操作回滚到任意的提交记录)
4、强制推送回滚后的仓库代码到远程仓库
git push -f origin abcd // origin正常是一个引用代表远程版本库的URL,abcd代表本地的分支名也是和远程仓库的分支同名
(git push -f origin abcd:abc // 这个供有兴趣的同学自行研究,不做解释)
注意:一定要注意回滚有风险,数据需要有备份,有不清楚的可以咨询清楚或多查查git官网资料