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

     

  • 相关阅读:
    Java_swing控件实例
    java_泛型 TreeSet 判断hashcode/length(升序排列)
    java_泛型(设置通配符下限)
    java_泛型(构造器)部分实例
    子类可以继承的同时实现接口
    继承类的线程写法
    匿名内部类的线程写法
    接口作为参数并用参数变量可以调用接口中的方法------------------需要多练习
    类可以作为参数类型,参数的变量还能调用作为参数类型的方法--------------需要多练习
    接口和类
  • 原文地址:https://www.cnblogs.com/ningkyolei/p/5026011.html
Copyright © 2011-2022 走看看