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

浏览:39日期:2023-11-06

问题描述

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

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

问题解答

回答1:

git add -A

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

回答2:

还有个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.回答3:

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

回答4:

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

回答5:

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

相关文章: