使用git如何批量对文件进行rm操作

用了一段时间git了,一直有个问题没解决。当做了一些修改时,一般会直接 "git add ." 先将文件staged起来。

但是"git add ."对被删除的内容是无效的,还需要"git rm filename"删除文件,但是git rm命令貌似没有类似"git rm ."的用法(这样可以执行,但意思是删除所有文件),于是,当有比较大量的文件被删除时,一个个的git rm非常麻烦。。我现在基本上都是到gui的git(比如mac的Tower)中全选,批量Stage搞定,但是,命令行下面如何做比较方便呢,难道要自己写个脚本?

阅读 54.4k
5 个回答
git add -A

它会把我们未通过 git rm 删除的文件全部stage

还有个git commit -a可以用, 大致是删除的文件会自动标记, 但对新建文件就不行

-a, --all ____ Tell the command to automatically stage files that have been modified and deleted, but new files you have not told git about are not affected.
新手上路,请多包涵

git 可以用glob 模式通配符。Git 也有它自己的文件模式扩展匹配方式 比如 git rm *.c 删除当前目录及递归所有子目录下.c结尾的文件。 git rm *.c 则只删除当前目录的.c 文件。

新手上路,请多包涵

我之前也遇到楼主的问题,困惑很久,每次都要手动去清cach的文件。
今天百度到楼主这里,也没有找到答案,然后刚好遇到需求,就想了一下,有一个办法。
1、先把缓存中的文件清空。
git rm -r --cached 某个目录
2、再把所有文件重新加入缓存
git add .

git rm * -f删除当前git项目下的所有文件(包括所有目录)

推荐问题
宣传栏