zoukankan      html  css  js  c++  java
  • git远程代码库回滚(webstorm下)

    git远程代码库回滚(webstorm下)

    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的方法,不要采用本文所描述的方法

     

  • 相关阅读:
    C语言数组和字符串函数
    C语言控制语句
    C语言输入输出函数
    C语言运算符
    C语言数据类型
    嵌入式开发基础知识
    VI编辑器的使用
    Linux文件系统和目录相关命令
    前段之必学(转载)
    26个高效工作的小技巧(转载)
  • 原文地址:https://www.cnblogs.com/ningkyolei/p/5026011.html
Copyright © 2011-2022 走看看