在工作中遇到一个问题,使用git add . 想把很多修改文件一起加进去,不慎把untrack的文件例如bin/ 下的文件和gen/下的文件等不需要check的文件也加了进去。
这时如果要执行git reset --hard +SHA1号的话,之前的改动文件都会丢失。
所以可以通过以下命令来撤销掉已经add进去的文件:
git rm --cached +文件路径 ->这个命令不会删除物理文件,只是将已经add进缓存的文件删除。
git rm --f +文件路径 ->这个命令不仅将文件从缓存中删除,还会将物理文件删除,所以使用这个命令要谨慎。
若删除已经添加缓存的某一个目录下所有文件的话需要添加一个参数 -r。
比如我要删除bin下面的已经加入缓存的所有文件,那我需要执行以下命令:
git rm -r --cached bin/
执行完毕这些文件就又称为untrack的文件,通过执行git status 可以看到红色的字体的那些文件。