git学习日志-撤销

在使用git时,总会遇到需要撤销某些操作的情况。
下面就介绍几种撤销操作:

  • 重新提交;
  • 取消暂存的文件;
  • 撤销对文件的修改;

一、重新提交

有时候重新提交也可以算是一种撤销操作。比如:当我们提交完后,发现有些文件漏加了,或者提交信息写错了,那么可以使用git commit --amend命令重新提交。

这个命令会将暂存区的文件提交。

  • 如果上次提交以来未做任何改动,那么快照会保持不变,而修改的只是提交注释;
  • 有改动,那么只会有一个提交,也就是第二次提交会替换第一次提交的结果。

注意:当修改后再次提交时,并不是通过修改后的提交替换掉原有的提交,也就是说旧的提交不会出现在仓库的历史中,就像从没存在过一样。


二、取消暂存的文件

如果想要撤销暂存区的文件修改,可以执行git reset HEAD 命令来取消暂存。

这个命令其实在执行git status命令时,就已经提醒我们该如何撤销了。

例:我修改了两个文件,并且希望把他们做为两次独立的提交,但是却不小心输入git add *暂存了这两个文件。那么我应该如何取消暂存两个中的一个呢?执行git staus命令:

执行git status命令

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

取消暂存test-b.txt文件

注意:git reset命令是个危险的命令,要谨慎使用。


三、撤销对文件的修改

如果不想保留对test-b.txt文件的修改,那么应该怎么撤销呢,可以执行git checkout命令。

在上图中,我们已经看到了git给的提示信息:

撤销对test-b.txt文件的修改

执行git checkout -- test-b.txt命令,就撤销了对test-b.txt文件的修改。其实用还原这个词可能更准确,将该文件还原成上次提交时的样子。

注意:git checkout命令也是非常危险的命令,执行这条命令意味着,我们对该文件在本地的任何修改都会消失。

你可能感兴趣的:(git学习日志-撤销)