目录
撤销修改操作
在日常编码过程中,有些时候,我们可能写着写着发现目前的版本的代码越写越挫,越不符合标准,想让我们当前的文件去恢复到上一次提交的版本,撤销当前对文件的修改,其实就是恢复当前工作区的文件到上一个版本,有没有什么方法呢?
方法是有的,但是撤销修改要分为三种情况去讨论。
情况一
当前的修改仅仅是修改了工作区 的文件,但是没有进行git add 操作和 git commit 操作,也就是没有将文件添加到暂存区 和版本库 中,此时想要撤销当前工作区文件的修改。
此时有两种方法进行撤销修改。
- 使用 git diff 指令,查看当前修改的文件与上一次提交的文件的差异,根据差异对原有的文件进行相关差异代码的删除。这种方法作者不推荐,因为不能保证删除的过程中一定不会出错。
- 使用 git checkout -- [filename] 指令进行文件的撤销修改,将文件恢复到最近一次 add 或者 commit 的版本。推荐使用这种方法。
来吧展示。
我们给ReadMe 文件添加了一行**"hello China!!!"** 数据,现在我们要撤销当前的修改操作(这里要注意,添加数据,删除数据,修改数据其实就是是对文件修改的具体体现)。

使用 git checkout -- ReadMe 指令之后,确实完成了对工作区文件修改的撤销。
情况二
对工作区 中的文件进行了修改,并且已经进行了 git add 操作,将修改的文件添加到了暂存区 中,此时想要撤销当前工作区 和暂存区文件的修改。
此时可以使用以下两种方法进行修改。
- 使用 **git reset --mixed HEAD [filename]**指令,可以将 版本库 和 暂存区 中的文件恢复到当前提交版本,将暂存区的文件恢复到到当前提交版本之后,此时的情况就变成了情况一,所以根据情况一使用 git checkout 指令进行恢复。
- 使用git reset --hard HEAD指令,可以将 工作区 和 版本库 和 暂存区 中的文件恢复到当前提交版本。
方法一展示。
我们先对ReadMe 文件做了相同的修改,添加了对应的数据,然后将工作区中的文件进行了git add 操作,然后再使用git reset HEAD 指令将暂存区和版本库的文件恢复到了当前提交版本,此时查看本地仓库的状态,发现是工作区中的问价未 git add的状态,此时就变成了情况一。

此时再使用情况一的方法,就能实现工作区中的文件的当前修改的撤销。

此时已经成功完成了对工作区 和暂存区文件的当前修改的撤销。
方法二展示。
直接使用 git reset --hard HEAD 指令,将当前的工作区 ,暂存区 ,版本库中的文件恢复到当前的提交版本。

此时也完成了对工作区 和暂存区文件修改的撤销。
情况三
对工作区 的文件修改之后,进行了git add 操作,进行了 git commit 操作,已经将修改的文件添加到了暂存区 和版本库 中,此时想撤销对工作区 和暂存区 和版本库文件的修改。
方法如下。
直接使用git reset --hard HEAD^ 指令,进行所有文件的撤销,其实也就是上期的所有文件的回退操作。HEAD 表示当前提交版本,HEAD^ 表示上一次提交的版本,其它同理。
展示如下。
先对ReadMe 文件进行修改操作,然后进行 git add 和git commit 操作。

然后使用 git reset --hard HEAD^ 指令将工作区 和暂存区 和版本库中的所有文件恢复到上一版本。

此时就完成了工作区 和暂存区 和版本库文件的撤销修改操作。
删除文件
有时候我们发现我们创建的文件和提交的文件不符合要求,要将工作区 和暂存区 和版本库 中对应的文件要删除,此时我们应该如何进行删除呢?
有两种方法。
- 先使用 rm 指令删除掉对应工作区的文件之后,然后使用git add 和 git commit 指令,这样最终就删除了三个模块中对应的文件。
- 先使用git rm [filename] 指令 ,然后再使用 git commit指令,这样最终就删除了三个模块中对应的文件。
由于我们使用的是 git 1.83 版本,第一种方法必须使用 git 2.0 及其以上版本。

升级git
所以要对 git版本进行升级。
1.卸载掉旧版本。
bash
sudo yum remove git -y
使用 git --version 指令查看git版本。

此时已经完成了旧版本的卸载。
2.安装 git 升级所依赖的仓库。
bash
sudo rpm -ivh http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm
3.安装新版本 git 工具。
bash
sudo yum -y install git -y

此时我们通过 git version 指令发现git 工具新版本已经安装完毕。
方法一展示。
创建file1 文件,完成提交之后,将该文件在工作区 和暂存区 和版本库中都进行删除。

最终完成了 file1 文件在各个模块的删除操作。
方法二展示。
创建file1 文件,完成提交之后,将该文件在工作区 和暂存区 和版本库中都进行删除。

最终完成了对file1 文件在各个模块的删除。
其实第二种方法其实就是对第一种方法的整合,第二种方法将第一种方法中的 rm 和git add 操作进行了整合,所以当第二种方法git rm 之后,可以直接进行git commit 操作。
以上便是本期的所有内容。
本期内容到此结束^_^