一、取消文件修改
在使用git进行开发的过程中,有时候会不小心对某个文件进行了修改,但是又不想将这些修改提交到仓库中,这个时候我们就需要撤销这些修改。
1. 撤销单个文件的修改
如果我们只对某一个文件进行了修改,并且还没有进行git add
操作,那么我们可以使用git checkout
命令来撤销这些修改。
#查看文件状态
git status
#撤销单个文件的修改
git checkout filename
注意:使用git checkout
命令会将本地已经做出的修改全部撤销,并恢复文件到上一次提交的状态。如果这些修改已经添加到了暂存区,那么这些修改会全部丢失,包括之前没有提交的修改。因此在使用git checkout
命令时要谨慎,确认文件是否已经add
到了暂存区。
2. 撤销所有文件的修改
如果我们对多个文件进行了修改,或者已经add
到了暂存区,但是又想将这些修改全部撤销,可以使用如下命令。
#撤销所有文件的修改
git checkout .
#撤销已经add到暂存区的所有文件的修改
git reset HEAD .
git checkout .
注意:使用上面的命令会全部撤销本地所有对于文件的修改,谨慎使用。
二、撤销提交
在使用git commit
命令将代码提交到版本库之后,如果出现问题就需要撤销这次提交,这个时候就需要使用git reset
命令。
1. 撤销上一次提交并修改
如果我们只是不小心提交了错误的代码或者提交了不完整的代码,想要将代码撤销并重新修改后提交,可以使用如下命令:
#撤销上一次提交
git reset --soft HEAD^
#修改代码
#...
#再次提交代码
git commit -m "commit message"
注意:上面的命令撤销了上一次的提交,并将本地的HEAD
指向了上一次提交的状态,但是保存的提交仍然在本地,需要手动修改后再次提交。
2. 撤销上一次提交并删除
如果我们不想保留此次提交的文件修改,而是完全撤销此次提交并删除修改,可以使用如下命令:
#撤销上一次提交并删除
git reset --hard HEAD^
注意:上面的命令完全撤销了上一次的提交,包括之前的修改,谨慎使用。