Git 基本操作(二)
目录
撤销修改操作
情况一
情况二
情况三
删除文件
升级git
撤销修改操作
在日常编码过程中,有些时候,我们可能写着写着发现目前的版本的代码越写越挫,越不符合标准,想让我们当前的文件去恢复到上一次提交的版本,撤销当前对文件的修改,其实就是恢复当前工作区的文件到上一个版本,有没有什么方法呢?
方法是有的,但是撤销修改要分为三种情况去讨论。
情况一
当前的修改仅仅是修改了工作区的文件,但是没有进行 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.卸载掉旧版本。
sudo yum remove git -y
使用 git --version 指令查看 git 版本。
此时已经完成了旧版本的卸载。
2.安装 git 升级所依赖的仓库。
sudo rpm -ivh http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm
3.安装新版本 git 工具。
sudo yum -y install git -y
此时我们通过 git version 指令发现 git 工具新版本已经安装完毕。
方法一展示。
创建 file1 文件,完成提交之后,将该文件在工作区和暂存区和版本库中都进行删除。
最终完成了 file1 文件在各个模块的删除操作。
方法二展示。
创建 file1 文件,完成提交之后,将该文件在工作区和暂存区和版本库中都进行删除。
最终完成了对 file1 文件在各个模块的删除。
其实第二种方法其实就是对第一种方法的整合,第二种方法将第一种方法中的 rm 和 git add 操作进行了整合,所以当第二种方法 git rm 之后,可以直接进行 git commit 操作。
以上便是本期的所有内容。
本期内容到此结束^_^