我正在尝试取消监视我的Git存储库中文件名以'form'开头的所有文件。例如:'form1.cfm,form2.cfm,form3.cfm',它们遍布我的存储库中的几个不同级别的目录。以下命令可用于取消监视整个目录,但它现在无法正常工作。
git rm --cached -r * form.cfm
当我执行该命令时,它只是删除/取消它碰到的第一个* .cfm形式 - 而不是整个文件系统中的所有匹配。
关于如何忽略以字符串开头且位于整个存储库中的文件的任何建议?谢谢!
答案 0 :(得分:0)
您可以尝试以下内容:
git rm --cached `find . -iname "*form*.cfm"`
find
将返回您的仓库中的所有form*.cfm
,然后只需发出git rm --cached
即可从git index中删除find
的结果。
我使用最多4级嵌套文件夹对其进行了测试:
$ tree .
.
├── form1.cfm
└── subfolder1
├── form2.cfm
└── subfolder2
├── form3.cfm
└── subfloder3
└── form4.cfm
答案 1 :(得分:0)
我刚刚在我的存储库根目录中创建了两个名为form1.cfm
和form2.cfm
的文件,并将它们提交到存储库。然后我跑了:
git rm --cached -r form*.cfm
并且输出显示它们都是两个文件。
但是,我刚刚尝试了第二次尝试,这次也在子目录中创建了form3.cfm
,并且只删除了form1.cfm
和form2.cfm
。要删除此文件,我还必须运行:
git rm --cached -r */form*.cfm