参考文章:git commit和git add的撤销
如果不想提交某个文件,比如
DBConfig.py
,但是不小心git add了这个文件,想要撤销add的话,不要用git rm --cached DBConfig.py
,应该用git reset HEAD DBConfig.py
昨天误用了
git rm --cached xxx.py
,push之后发现gitlab上的对应的xxx.py
文件也被删除了…赶紧又补回来…
git add
的撤销
git add
操作时,会将工作目录中已修改的文件放到暂存区。这时如果你误添加一些不想提交的文件,如何解决?
那么你可以使用命令git reset HEAD <撤销的文件1> ...
来取消暂存,将file退回到unstage区,例如:
$ git add.c.txt
$ git reset HEAD c.txt
接着,如果想放弃已经修改的内容,将某个文件恢复到上次commit的状态
,只需要使用命令git checkout -- <放弃的文件> ...
如果你是新建的文件,如果要放弃,那么使用git rm <文件>...
git rm 与 git reset的区别
git rm
:用于从工作区和索引中删除文件
git reset
:用于将当前HEAD复位到指定状态。一般用于撤消之前的一些操作(如:git add,git commit等)。
git rm file_path
删除暂存区和分支上的文件,同时工作区也不需要
git rm --cached file_path
删除暂存区或分支上的文件, 但工作区需要使用, 只是不希望被版本控制。