用了一段时间git了,一直有个问题没解决。当做了一些修改时,一般会直接 "git add ." 先将文件staged起来。
但是"git add ."对被删除的内容是无效的,还需要"git rm filename"删除文件,但是git rm命令貌似没有类似"git rm ."的用法(这样可以执行,但意思是删除所有文件),于是,当有比较大量的文件被删除时,一个个的git rm非常麻烦。。我现在基本上都是到gui的git(比如mac的Tower)中全选,批量Stage搞定,但是,命令行下面如何做比较方便呢,难道要自己写个脚本?
它会把我们未通过 git rm 删除的文件全部stage
还有个
git commit -a
可以用, 大致是删除的文件会自动标记, 但对新建文件就不行git 可以用glob 模式通配符。Git 也有它自己的文件模式扩展匹配方式 比如 git rm *.c 删除当前目录及递归所有子目录下.c结尾的文件。 git rm *.c 则只删除当前目录的.c 文件。
我之前也遇到楼主的问题,困惑很久,每次都要手动去清cach的文件。
今天百度到楼主这里,也没有找到答案,然后刚好遇到需求,就想了一下,有一个办法。
1、先把缓存中的文件清空。
git rm -r --cached 某个目录
2、再把所有文件重新加入缓存
git add .
git rm * -f删除当前git项目下的所有文件(包括所有目录)