要对我的所有文件应用一些更改pom.xml
,我正在运行以下命令:
git checkout --theirs **/**/**/**/pom.xml
git checkout --theirs **/**/**/pom.xml
git checkout --theirs **/**/pom.xml
git checkout --theirs **/pom.xml
git checkout --theirs pom.xml
但我找不到针对所有pom.xml
文件的替换,在任何级别的目录深度。
我如何在一个命令中完成我所做的事情?
根据您的要求,这里有两个可能的答案。您不能使用 shell 通配符来匹配尚不存在的文件或目录,因此您不能使用 shell 通配符来指示
git
要签出哪些项目,除非它们已经存在于您的文件系统中。幸运的是git
,它本身确实支持这种情况的通配符。特别是对于
git
,您需要将 传递**
给git
自身,而不需要 shell 尝试扩展它。在这种情况下,使用引号将字符串作为文字传递给git
:git
在shell之外bash
还支持双星通配符扩展。文档 (man bash
) 写道,这是一个
bash
默认情况下通常不启用的选项,因此您需要启用它:之后的例子,