一、暴力模式
master如何回滚到某个提交呢?
相信很多人一开始想到的是reset,暴力模式:
先拉一个分支保留当前的master代码:
git branch tmp
然后回到master:
git chechout master
回滚到某一个commit:
git reset --hard <commit id>
然后强推:
git push origin -f
这时master将完全回滚到之前的某个commit,之间的commit历史也会消失。所以这种方式是比较危险的,一般公司里不会给你强推master的权限,万一你强推代码把别人的
代码给覆盖了,并且之前也没有备份master,别人辛苦写的代码就再也找不回了。在极端一些,你甚至可以用强推的方式删代码跑路。。。。。所以这是很危险的!
二、安全模式
下面介绍一种可以保留历史记录,只是把这次的回滚当作一次新的代码提交:
回到之前的某个提交的代码:
git checkout <commit id> -- ./
然后提交:
git commit -m "XXXXX"
git push origin