git学习日志-撤销
2020-06-29 本文已影响0人
Levi_moon
在使用git时,总会遇到需要撤销某些操作的情况。
下面就介绍几种撤销操作:
- 重新提交;
- 取消暂存的文件;
- 撤销对文件的修改;
一、重新提交
有时候重新提交也可以算是一种撤销操作。比如:当我们提交完后,发现有些文件漏加了,或者提交信息写错了,那么可以使用git commit --amend
命令重新提交。
这个命令会将暂存区的文件提交。
- 如果上次提交以来未做任何改动,那么快照会保持不变,而修改的只是提交注释;
- 有改动,那么只会有一个提交,也就是第二次提交会替换第一次提交的结果。
注意:当修改后再次提交时,并不是通过修改后的提交替换掉原有的提交,也就是说旧的提交不会出现在仓库的历史中,就像从没存在过一样。
二、取消暂存的文件
如果想要撤销暂存区的文件修改,可以执行git reset HEAD <file>
命令来取消暂存。
这个命令其实在执行git status
命令时,就已经提醒我们该如何撤销了。
例:我修改了两个文件,并且希望把他们做为两次独立的提交,但是却不小心输入git add *
暂存了这两个文件。那么我应该如何取消暂存两个中的一个呢?执行git staus
命令:

可以看到在Changes to be committed
下方,有提示:使用git reset HEAD <file>...
来取消暂存,所以,我们可以执行git reset HEAD test-b.txt
命令来取消暂存test-b.txt
文件。

注意:git reset
命令是个危险的命令,要谨慎使用。
三、撤销对文件的修改
如果不想保留对test-b.txt
文件的修改,那么应该怎么撤销呢,可以执行git checkout
命令。
在上图中,我们已经看到了git给的提示信息:

执行git checkout -- test-b.txt
命令,就撤销了对test-b.txt
文件的修改。其实用还原这个词可能更准确,将该文件还原成上次提交时的样子。
注意:git checkout
命令也是非常危险的命令,执行这条命令意味着,我们对该文件在本地的任何修改都会消失。