git远程代码库回滚(webstorm下)
2015-12-07 14:36
281 查看
git远程代码库回滚(webstorm下)
进行了三次修改,并分别进行了三次commit,最后进行了一次push
git log结果如下图:
【file-for-test.js】文件的内容如下图:
现在希望,将远程代码库下的【file-for-test.js】文件回滚到【//lyn test1】的版本
此时git log结果如下图:
【file-for-test.js】文件的内容如下图:
动作1:开发人员A push了一个错误的commit到远程代码库
动作2:开发人员B pull了远程代码库到其本地代码库中
动作3:开发人员B修改了一定的代码,commit到其本地代码库中(与远程代码库中不冲突)
动作4:开发人员A按照本文操作,回滚远程代码库到push错误的commit之前的版本
动作5:开发人员B push本地代码库中的commit到远程代码库中
就在此时,由于开发人员B的本代码库中有开发人员A错误的commit,所以开发人员B的push操作会先将本地代码库(有错误commit的版本)和远程代码库(没有错误commit的版本)进行merge,得到一个有错误commit的版本,再push到远程代码库上。所以,你懂的。
故,结论:当出现需要远程代码库回滚时,采用直接修改后再重新push的方法,不要采用本文所描述的方法
1. 场景
添加了一个文件【file-for-test.js】到git的控制下进行了三次修改,并分别进行了三次commit,最后进行了一次push
git log结果如下图:
【file-for-test.js】文件的内容如下图:
现在希望,将远程代码库下的【file-for-test.js】文件回滚到【//lyn test1】的版本
2. 操作步骤
2.1. 【Version Control】——【Log】
2.2. 右击【//lyn test1】行,【Reset Current Branch to Here...】
2.3. 选择【Hard】,点击【Reset】
此时git log结果如下图:
2.4. 关键步骤:设置force push
2.4.1. 【VCS】——【Git】——【Push】
2.4.2. 【Configure】
2.4.3. 勾选【Allow force push】,【OK】
2.5. 【VCS】——【Git】——【Push】
2.6. 勾选【Push Tags】,选择【Current Branch】,选择【Force Push】
2.7. 【Force Push】
2.8. OK
git log结果如下图:【file-for-test.js】文件的内容如下图:
3. 特别注意
后来发现,使用本文所述方法,在以下场景会出现问题:动作1:开发人员A push了一个错误的commit到远程代码库
动作2:开发人员B pull了远程代码库到其本地代码库中
动作3:开发人员B修改了一定的代码,commit到其本地代码库中(与远程代码库中不冲突)
动作4:开发人员A按照本文操作,回滚远程代码库到push错误的commit之前的版本
动作5:开发人员B push本地代码库中的commit到远程代码库中
就在此时,由于开发人员B的本代码库中有开发人员A错误的commit,所以开发人员B的push操作会先将本地代码库(有错误commit的版本)和远程代码库(没有错误commit的版本)进行merge,得到一个有错误commit的版本,再push到远程代码库上。所以,你懂的。
故,结论:当出现需要远程代码库回滚时,采用直接修改后再重新push的方法,不要采用本文所描述的方法
相关文章推荐
- git本地代码库回滚(webstorm下)
- 剖析Java中阻塞队列的实现原理及应用场景
- myeclipse项目文件结构浏览模式配置
- PSI_SI
- delphi7 下的Excel导出
- 处理FFT横坐标问题MATLAB
- java中多种排序算法总结
- php服务端学习感想
- C++ using关键字作用总结
- eclipse如何去掉无用的validation、优化eclipse
- spring quartz 时间配置格式
- WEB编程 入门简单 进阶难
- Python中的list,tuple,dict,set
- 深入理解Java线程编程中的阻塞队列容器
- java ++i 和 i++
- thinkphp中的自动验证
- C语言成长学习题(十)
- python if __name__ = __main___
- java ++i 和 i++
- springmvc事务@Transactional到底能不能用在controller上。答案是可以的