我试图以递归方式删除文件扩展名,但无论我尝试什么,它都会继续失败。谢谢你的任何想法。
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
答案 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