• Git - 基于IDEA/命令撤销工作区和暂存区的修改



    在这里插入图片描述

    1. 使用命令行回滚工作区的修改(回滚文件的修改)

    可能有一天我正在写代码,写了很久发现写错了,想恢复到一开始的状态,一个笨办法就是把刚刚写的代码一行一行的删除,不过这种方式成本太高,我们可以通过命令来回滚

    工作区的代码修改:

    $ git checkout HEAD <file>
    $ git checkout -- <file>
    
    • 1
    • 2

    测试:

    ① Test.java文件内容:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ② 在Test.java文件中添加两行代码:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
            System.out.println("我是添加的代码1");
            System.out.println("我是添加的代码2");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    ③ 此时这些代码还在工作区,并没添加到暂存区,想要回滚对当前Test.java文件的修改,执行命令:

    User@6-cpgh0012 MINGW64 /d/mycode/company_frame/company_member/src/main/java/com/yingxue/lesson (feature-test)
    $ git checkout -- Test.java
    
    • 1
    • 2

    ④ 执行命令后,Test.java文件内容恢复到未修改之前的状态:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2. 使用命令回滚暂存区的修改

    如果想要回滚,但是代码已经提交到暂存区了,不用担心,也能回滚,分两个步骤:

    第1步:将暂存区的代码回滚到工作区

    $ git reset HEAD
    
    • 1

    第2步:将工作区的代码回滚

    $ git checkout -- <file>
    
    • 1

    测试:

    ① Test.java文件内容:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ② 在Test.java文件中添加两行代码:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
            System.out.println("我是添加的代码1");
            System.out.println("我是添加的代码2");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    ③ 将当前文件的修改添加到暂存区:

    User@6-cpgh0012 MINGW64 /d/mycode/company_frame/company_member/src/main/java/com/yingxue/lesson (feature-test)
    $ git add Test.java
    
    • 1
    • 2

    ④ 将暂存区的修改回滚到工作区:

    User@6-cpgh0012 MINGW64 /d/mycode/company_frame/company_member/src/main/java/com/yingxue/lesson (feature-test)
    $ git reset HEAD
    Unstaged changes after reset:
    M       src/main/java/com/yingxue/lesson/Test.java
    
    • 1
    • 2
    • 3
    • 4

    ⑤ 回滚后代码状态仍然是修改后的状态:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
            System.out.println("我是添加的代码1");
            System.out.println("我是添加的代码2");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    ⑥ 将工作区的修改回滚:

    User@6-cpgh0012 MINGW64 /d/mycode/company_frame/company_member/src/main/java/com/yingxue/lesson (feature-test)
    $ git checkout -- Test.java
    
    • 1
    • 2

    ⑦ 执行以上命令后,Test.java文件内容恢复到未修改之前的状态:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3. 基于IDEA回滚工作区的修改

    ① Test.java文件内容:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ② 在Test.java文件中添加两行代码:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
            System.out.println("我是添加的代码1");
            System.out.println("我是添加的代码2");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    ③ 此时这些代码还在工作区,并没添加到暂存区,想要回滚对当前Test.java文件的修改:

    点击 IDEA 右上角的回滚按钮
    在这里插入图片描述
    然后点击Rollback按钮:
    在这里插入图片描述
    ④ 执行命令后,Test.java文件内容恢复到未修改之前的状态:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4. 基于IDEA回滚暂存区的修改

    ① Test.java文件内容:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ② 在Test.java文件中添加两行代码:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
            System.out.println("我是添加的代码1");
            System.out.println("我是添加的代码2");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    ③ 此时这些代码还在工作区,并没添加到暂存区,想要回滚对当前Test.java文件的修改:
    ④ 执行命令后,Test.java文件内容恢复到未修改之前的状态:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5. 基于IDEA回滚暂存区和工作区的修改

    ① Test.java文件内容:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ② 在Test.java文件中添加两行代码:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
            System.out.println("我是添加的代码1");
            System.out.println("我是添加的代码2");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    ③ 将文件的修改添加到暂存区:

    在这里插入图片描述

    ④ 将工作区和暂存区的修改回滚:

    方式1:点击 IDEA 右上角的回滚按钮
    在这里插入图片描述
    方式2:鼠标右键点击Rollback
    在这里插入图片描述
    然后点击 Rollback :

    在这里插入图片描述
    ⑤ Test.java文件内容恢复到未修改之前的状态:

    public class Test {
        public static void main(String[] args) {
            System.out.println();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    【STM32】FSMC接口的复用和非复用
    重学Kotlin(五) 泛型 类型别名 委托
    Docker与Docker-Compose详解
    138、★很经典的一道题目:LeetCode-42.接雨水
    SpringMVC学习
    【Golang】Gin教学-获取请求信息并返回
    民安智库(第三方社会评估调研公司)开展零食消费者调查
    22.Condition的功能和原理
    python:ADB通过包名打开应用
    WebSocket编程golang
  • 原文地址:https://blog.csdn.net/qq_42764468/article/details/126430224