我正在尝试使用通配符执行 git remove。
git rm -r -f $artname-*-$buildtype
$artname 变量类似于“core”,$buildtype 类似于“SNAPSHOT.jar”
因此,如果远程存储库上有一个名为“core-1.0-SNAPSHOT”的文件,则应使用通配符将其删除。
但这行不通。变量确实可以解析,但通配符似乎不起作用。
这是我遇到的错误
fatal: pathspec 'core-*-SNAPSHOT.jar' did not match any files
我希望有人能帮助我!
最佳答案
根据git-rm documentation ,可能的原因可能是:
- bash 在到达
git
之前扩展 glob(由于错误消息中的“core-*-SNAPSHOT.jar
”,它没有 - 在您的具体情况下 - 因为它与您所在目录中的任何内容都不匹配)。引用参数以防止出现这种情况:git rm "$artname-*-$buildtype"
- 您感兴趣的文件未被跟踪(
git
的搜索行为就好像它们不存在一样) -r
需要主目录名称才能工作(文档是这么说的,但使用git 2.7.4
进行的简单测试表明它实际上不是)
关于带通配符的 Git rm 找不到现有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36109438/