Git - 递归删除文件扩展名

时间:2014-09-01 08:25:23

标签: git

我试图以递归方式删除文件扩展名,但无论我尝试什么,它都会继续失败。谢谢你的任何想法。

ubuntu@ubuntu-laptop:~/hh/hh_sdk/src/uboot_hh$ git rm -r --cached \*.o
fatal: pathspec 'src/uboot_hh/*.o' did not match any files
ubuntu@ubuntu-laptop:~/hh/hh_sdk/src/uboot_hh$ sudo git rm -r --cached \*.o
fatal: pathspec 'src/uboot_hh/*.o' did not match any files
ubuntu@ubuntu-laptop:~/hh/hh_sdk/src/uboot_hh$ sudo git rm -r --cached *.o
fatal: pathspec 'src/uboot_hh/*.o' did not match any files
ubuntu@ubuntu-laptop:~/hh/hh_sdk/src/uboot_hh$ sudo find . -name *.o -exec git rm -r --cached {} \;
 fatal: pathspec 'src/uboot_hh/lib_arm/_divsi3.o' did not match any files
fatal: pathspec 'src/uboot_hh/lib_arm/cache.o' did not match any files
fatal: pathspec 'src/uboot_hh/lib_arm/_udivsi3.o' did not match any files
fatal: pathspec 'src/uboot_hh/lib_arm/_umodsi3.o' did not match any files

2 个答案:

答案 0 :(得分:1)

find方法应该运行良好,但您需要单引用'*.o'模式,因为shell会在将*传递给find之前展开--force。< / p>

如果文件系统中不存在该文件,您还需要将-f选项(git rm)传递给find -name '*.o' -exec git rm -f -r --cached {} \;

{{1}}

答案 1 :(得分:0)

看来您的文件已被已忽略,这就是为什么git在执行命令时给出错误消息

find -name '*.log' -type f -exec git rm --cached {} \;

### fatal: pathspec './modules/logger/logs/newleaf_2019-08-19.log' did not match any files

因此,请先检查您的文件是否已被忽略,或者可以运行此命令来测试文件(如果已忽略)

find -name '*.log' -exec git check-ignore --v {} \;

OR TEST SINGLE FILE

git check-ignore --v ./modules/logger/logs/test.log

如果文件忽略,您将获得此输出,否则它将返回空。

.gitignore:4:logs/      ./modules/logger/logs/test.log