roi*_*oim 9 git glob gitignore
当我编译我的C++项目时,许多共享对象文件都是使用扩展名创建的
.so
.so.0
.so.7
.so.0.7
Run Code Online (Sandbox Code Playgroud)
我需要将所有这些添加到我的.gitignore文件中.如果这是一个正则表达式,我可以使用
\.so[\.0-9]*
Run Code Online (Sandbox Code Playgroud)
但是,文档说明了这一点.gitignore
将模式视为适合
fnmatch(3)使用FNM_PATHNAME标志的shell glob
我找不到用fnmatch我发现的文件做我想做的事情.真的没办法做到这一点吗?
mu *_*u 無 13
虽然@SpeakEasy的答案可以.so在一个步骤中忽略文件*.so*,对于您忽略指定格式的文件的用例,您可以在您.gitignore的更具体的忽略规则中使用两个条目
*.so
*.so.[0-9]*
Run Code Online (Sandbox Code Playgroud)
gitignore文件中的每一行都指定一个模式.
Git将模式视为适合消费的shell glob
fnmatch
需要注意的重要一点是,模式与正则表达式不同.
Python有一个名为fnmatch的模块,您可以使用它来验证特定文件名是否与模式匹配.
示例示例:
import fnmatch
pattern = "*.so.[0-9]*"
filenames = ["a.so", "b.so.0", "b.so.11", "b.so.1.0", "b.so.1.0.12"]
for filename in filenames:
print filename, fnmatch.fnmatch(filename, pattern)
>>> a.so False
b.so.0 True
b.so.11 True
b.so.1.0 True
b.so.1.0.12 True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4522 次 |
| 最近记录: |