我的项目包含数百个目录和子目录,我想从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'