Git - 基于IDEA/命令回滚工作区和暂存区的修改

这篇具有很好参考价值的文章主要介绍了Git - 基于IDEA/命令回滚工作区和暂存区的修改。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


Git - 基于IDEA/命令回滚工作区和暂存区的修改

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

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

工作区的代码修改:

$ git checkout HEAD <file>
$ git checkout -- <file>

测试:

① Test.java文件内容:

public class Test {
    public static void main(String[] args) {
        System.out.println();
    }
}

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

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

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

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

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

public class Test {
    public static void main(String[] args) {
        System.out.println();
    }
}

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

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

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

$ git reset HEAD

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

$ git checkout -- <file>

测试:

① Test.java文件内容:

public class Test {
    public static void main(String[] args) {
        System.out.println();
    }
}

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

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

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

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

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

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

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

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

⑥ 将工作区的修改回滚:

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

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

public class Test {
    public static void main(String[] args) {
        System.out.println();
    }
}

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

① Test.java文件内容:

public class Test {
    public static void main(String[] args) {
        System.out.println();
    }
}

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

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

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

点击 IDEA 右上角的回滚按钮
Git - 基于IDEA/命令回滚工作区和暂存区的修改
然后点击Rollback按钮:
Git - 基于IDEA/命令回滚工作区和暂存区的修改
④ 执行命令后,Test.java文件内容恢复到未修改之前的状态:

public class Test {
    public static void main(String[] args) {
        System.out.println();
    }
}

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

① Test.java文件内容:

public class Test {
    public static void main(String[] args) {
        System.out.println();
    }
}

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

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

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

public class Test {
    public static void main(String[] args) {
        System.out.println();
    }
}

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

① Test.java文件内容:

public class Test {
    public static void main(String[] args) {
        System.out.println();
    }
}

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

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

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

Git - 基于IDEA/命令回滚工作区和暂存区的修改

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

方式1:点击 IDEA 右上角的回滚按钮
Git - 基于IDEA/命令回滚工作区和暂存区的修改
方式2:鼠标右键点击Rollback
Git - 基于IDEA/命令回滚工作区和暂存区的修改
然后点击 Rollback :

Git - 基于IDEA/命令回滚工作区和暂存区的修改
⑤ Test.java文件内容恢复到未修改之前的状态:文章来源地址https://www.toymoban.com/news/detail-404020.html

public class Test {
    public static void main(String[] args) {
        System.out.println();
    }
}

到了这里,关于Git - 基于IDEA/命令回滚工作区和暂存区的修改的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git工作区删除了文件想更新回来

    删除了本地dev分支的几个文件,本地dev对应远端dev分支,想更新回来 法一、如果你知道文件夹名称或者文件名称: 法二、工作区的修改,其中就包括删除,这其实都会被git认为正常的操作,即使是你误操作 而针对你的操作,git提供了回退操作,如下图 法三,直接将本地库整

    2024年02月11日
    浏览(63)
  • Git——三大分区【工作区 / 暂存区 / 版本区】

    前言 :Git作为一个版本管理工具,最核心组成思想是它的三个分区:工作区、暂存区和工作区。   Git的工作区也就是我们平时编辑代码的目录文件夹。   暂存区就是一个 暂时放置修改文件记录 的地方。以往仓库中放货物为例,向仓库中放货物总是一车车的拉,因为如

    2024年02月06日
    浏览(67)
  • git 将其它分支的文件检出到工作区

    主要是使用如下命令: 覆盖与 pathspec 匹配的文件的内容。当没有给出 tree-ish (通常是一个commit)时,用 index 中的内容覆盖工作树。当给出 tree-ish 时,用 tree-ish 处的内容同时覆盖 index 和工作树。 由于前一个的合并失败,index 可能包含未合并的条目。默认情况下,如果您试图从

    2023年04月09日
    浏览(42)
  • Git分支管理的原理 & 工作区、暂存区的分支共享

    首先,Git是 版本 控制系统,所以Git的存储基本数据单元是不同的 版本对象 ,对应的就是不同的commit。换句话说,我们每commit一次,就是一个版本,也就是一个Git存储单元。 2.1 只有 main 分支时 当只有main分支时,在修改过文件且进行git add 和 git commit 操作后,目前的文件就会

    2024年02月03日
    浏览(44)
  • 【Git】第四篇:基本操作(理解工作区、暂存区、版本库)

    工作区 :就是我们创建的本地仓库所在的目录 暂存区 : stage或index,一般放在.git(可隐藏文件)目录下的index文件(.git/index)中,所以我们把暂存区有时候也叫做索引(index) 版本库 :工作区有一个隐藏目录 .git ,所说的版本库就是隐藏的.git目录。 下面的图详细展示了三者

    2024年02月04日
    浏览(57)
  • Git详解(带图) --- 本地电脑的工作区、暂存区、本地仓与远程仓

    在 git 的丰富功能中,工作区 (Work Space)、暂存区 (Index/Staging Area)、本地仓库 (Local Repository) 和远程仓库 (Remote Repository) 被认为是四大核心概念。今天让我们深入了解这些神秘的组成部分,揭开它们的面纱,让你能够更好地利用Git来管理项目。 上图相信大家再熟悉不过,这是我

    2024年01月18日
    浏览(49)
  • 【Linux】:初识git || centos下安装git || 创建本地仓库 || 配置本地仓库 || 认识工作区/暂存区(索引)以及版本库

    Git 原理与使用 课程⽬标 • 技术⽬标:掌握Git企业级应⽤,深刻理解Git操作过程与操作原理,理解⼯作区,暂存区,版本库的含义 • 技术⽬标:掌握Git版本管理,⾃由进⾏版本回退、撤销、修改等Git操作⽅式与背后操作原理 • 技术⽬标:掌握Git分⽀管理,从分⽀创建,切换,

    2024年02月05日
    浏览(65)
  • VS Code工作区用法

    背景 VS Code可以通过\\\"文件/打开文件夹\\\"来打开本地项目,但是想要打开多个项目便需要来回切换,比较费劲。此时就可以使用工作区功能,将不同的项目放置到同一个工作区中,这样切换项目的时候就会非常方便。 操作方法 打开其中一个项目 执行命令:文件 》 打开文件夹

    2024年01月25日
    浏览(64)
  • VScode 工作区配置 和 用户配置

    通常不同的项目都有不同的配置,我一般都是使用eslint和prettier一起用,所以经常会有这几个文件: 这里简单介绍一下这几个文件的作用吧。 一般有两个文件,extensions.json和settings.json。 extensions.json 文件是用来配置推荐安装的 VS Code 插件的文件。在这个文件中,你可以列出你

    2024年01月24日
    浏览(56)
  • go work 笔记 (多模块工作区)

    go 1.18 引入了功能泛型 (Generics), 同时还引入的多模块工作区 (Workspaces) 和模糊测试 (Fuzzing)。 Go 多模块工作区能够使开发者能够更容易地同时处理多个模块的工作, 如: 方便进行依赖的代码调试(打断点、修改代码)、排查依赖代码 bug 方便同时进行多个仓库/模块并行开发调试 通

    2024年02月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包