如何使用Git递归删除所有json文件



我的项目包含数百个目录和子目录,我想从git中删除所有JSON文件,但将它们保留在项目中

我试过

git rm -r ./*.json

但它只是从当前目录中删除了JSON文件。有没有一种方法可以递归地从所有目录中删除它们?

玩得开心:

find . -name "*json" | xargs git rm

我想您已经备份了json文件。

  • find命令将查找所有以json结尾的文件,其中包括子目录中的文件
  • 管道|是将这些结果发送到下一个命令的一种方式
  • 套用维基百科的话:xargs将标准输入(管道(的输入转换为命令的参数,在本例中为git rm

Git本身支持通过路径规范进行递归globbing。

git rm ':(glob)./**/*.json'

在这种情况下,扩展模式的是git,而不是shell。CCD_ 6将查找名为CCD_;CCD_ 8使得能够进行模式匹配。

有关更多信息,请参阅";路径规范";在CCD_ 9中。

如果只想从存储库中删除文件(而不是当前工作目录中的文件(,请将--cached选项添加到命令中:

git rm --cached ':(glob)./**/*.json'

最新更新