取消监视文件 name/title 中以特定文本开头的所有文件

Unwatch all files that start with certain text in file name/title

我正在尝试取消监视我的 Git 存储库中文件名以 'form.' 开头的所有文件 例如:'form1.cfm, form2.cfm, form3.cfm,' 它们在我的存储库中以几个不同的级别目录。以下命令可用于取消监视整个目录,但它不适用于我现在正在做的事情。

git rm --cached -r *form.cfm

当我执行该命令时,它只是 removes/unwatches 它遇到的第一个格式 *.cfm -- 而不是整个文件系统中的所有匹配项。

关于如何忽略以字符串开头且位于整个存储库中的文件的任何建议?谢谢!

您可以尝试类似的方法:

git rm --cached `find . -iname "*form*.cfm"`

find 将 return 存储库中的所有 form*.cfm,然后只需发出 git rm --cached 即可从 [= 中删除 find 的结果22=]索引。

我用最多 4 层嵌套文件夹对其进行了测试:

$ tree .
.
├── form1.cfm
└── subfolder1
    ├── form2.cfm
    └── subfolder2
        ├── form3.cfm
        └── subfloder3
            └── form4.cfm

我刚刚在存储库的根目录中创建了两个文件,名为 form1.cfmform2.cfm,并将它们提交到存储库。然后我运行:

git rm --cached -r form*.cfm

并且输出显示它已 rm'd 两个文件。

然而,我只是尝试了第二次尝试,这次也在子目录中创建了一个form3.cfm,它只删除了form1.cfmform2.cfm。要删除此文件,我还必须 运行:

git rm --cached -r */form*.cfm