搜索

首页  >  问答  >  正文

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

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

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

大家讲道理大家讲道理2801 天前790

全部回复(5)我来回复

  • PHP中文网

    PHP中文网2017-04-21 10:59:25

    git add -A

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

    回复
    0
  • 阿神

    阿神2017-04-21 10:59:25

    还有个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.

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-21 10:59:25

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

    回复
    0
  • 高洛峰

    高洛峰2017-04-21 10:59:25

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

    回复
    0
  • ringa_lee

    ringa_lee2017-04-21 10:59:25

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

    回复
    0
  • 取消回复