在使用IDEA的reset时,会出现本地代码虽然回退了,可是远程代码库并未回退到对应的版本。简单说,本地回退了,远程库未回退。这时候咱们就须要使用命令行操做方式了。git
一、在log上找到要恢复的版本号服务器
使用git log查看须要恢复到的版本号。拿到git log version版本号。测试
git logspa
git log
|
二、在客户端执行以下命令(执行前,先将本地代码切换到对应分支)命令行
git reset --hard version版本号blog
git reset --hard xxx版本号
|
三、强制push到对应的远程分支(如提交到dev分支)开发
git push -f -u origin devit
git push -f -u origin dev
|
注意:如今到服务器上看到的代码就已经被还原回去了。io
这种操做存在两个问题,服务器上的代码虽然被还原了;table
问题1:如有多人在使用同一个库,他们本地的代码版本依然是比服务器上的版本高的。若是别人再从新提交代码的话,你回退(reset)的操做就白操做了。
解决方法1:让别人把本地的高版本分支先删掉,而后从新从服务器上拉取分支。
问题2:如有多人在使用同一个库,若是执行了步骤3 '强制push到对应的远程分支'会致使别人已经提交的代码被删除。因此慎用强制push这个命令。。。
解决方法2:使用另一种方法,不过我没有遇到。因此先放着到时候补上。固然最好的办法是开发不回退,尽可能测试经过了再提交代码。