当前位置: 首页 > 工具软件 > git-cliff > 使用案例 >

Git 撤销修改

蓝慈
2023-12-01

目录

撤销工作区的修改

撤销暂存区的修改

撤销版本库中的修改

撤销远程仓库中的修改


撤销工作区的修改

        当在Git仓库下修改的文件想要撤回时(即还没有git add提交到暂存区),使用 git checkout -- <file> 可以撤销工作区的修改。例如下面的例子中,Git 仓库中的文件分布是这样的:

➜  Code git:(master) ll
total 8
drwxr-xr-x   5   staff   160  8 10 12:14 ./
drwxr-xr-x+ 61   staff  1952  8 18 09:32 ../
drwxr-xr-x  13   staff   416  8 18 09:32 .git/
drwxr-xr-x   3   staff    96  8  3 15:29 cliff_demo/
-rw-r--r--   1   staff    21  8 10 12:14 master1.txt

        进入到master1.txt中,看看原本有什么内容:

  1 version: master1.0.0

修改master1.txt的内容,并保存退出:

version: master1.0.0
new version: ?

接下来撤回master1.txt的修改

git  checkout  -- file

➜  Code git:(master) ✗ git checkout -- master1.txt

再次进入master1.txt查看,发现刚刚的改动被撤销了:

version: master1.0.0

撤销暂存区的修改

在使用 git add命令将工作区的修改添加至暂存区后,可使用 git  reset  HEAD <file> 撤销暂存区的修改。

例如修改master1.txt文件:

(添加了最后一行)

version: master1.0.0
json : JavaScript Object Notation

使用git add将master1.txt文件修改添加至暂存区:

➜  Code git:(master) ✗ git add master1.txt

这时可以使用 git reset HEAD <file> 撤销本次暂存区的改动:

➜  Code git:(master) ✗ git reset HEAD master1.txt
Unstaged changes after reset:
M	master1.txt

(此时文件只是从暂存区又重新回到了工作区)

继续使用 git  checkout -- master1.txt 命令就可以将文件的修改从工作区撤回。

➜  Code git:(master) ✗ git checkout -- master1.txt

打开文件,发现文件确实被撤回了。

version: master1.0.0

撤销版本库中的修改

如果修改通过 git commit 提交到了版本库,无法直接使用命令撤销修改,只能通过版本切换到之前的版本。

git 版本切换:

https://blog.csdn.net/TCatTime/article/details/96482114

撤销远程仓库中的修改

如果使用了 git  push 命令将修改提交到了远程仓库,此时已经无法使用git 命令撤销。只能再次修改文件重新手动修改,并将修改重新git push到远程仓库。

 类似资料: