首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么gitignore在这种情况下不起作用?

为什么gitignore在这种情况下不起作用?
EN

Stack Overflow用户
提问于 2011-11-17 01:53:04
回答 5查看 15.2K关注 0票数 18

我有两个要忽略的文件:

  • .idea/workspace.xml
  • someapp/src/.idea/workspace.xml

我认为将这条规则添加到.gitignore中就足够了:

代码语言:javascript
复制
.idea/workspace.xml

但它只捕获顶级的.idea/workspace.xml (git状态显示未跟踪的某些as /src/.idea/workspace.xml)。

我也尝试过**/.idea/workspace.xml,但这根本不起作用。帮助?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-11-17 02:05:52

  • 如果模式不包含斜杠/,git会将其视为外壳全局模式,并检查相对于.gitignore文件位置的路径名是否匹配(如果不是来自.gitignore文件,则相对于工作树的顶层)。
  • 否则,git会将该模式视为适合由带有FNM_PATHNAME标志的fnmatch(3)使用的shell glob :模式中的通配符将与路径名中的/不匹配。…

一旦路径包含斜杠,Git将不再检查路径中的匹配,而是直接使用glob行为。因此,您不能匹配.idea/workspace.xml,而只能匹配workspace.xml

票数 11
EN

Stack Overflow用户

发布于 2013-10-24 13:33:48

这有changed in git 1.8.4

平台fnmatch(3)函数的使用(许多地方,如路径规范匹配、.gitignore和.gitattributes)已被替换为通配符,允许“foo/**/”匹配"foo/bar“、"foo/a/bar”等。

在本例中,**/.idea/workspace.xml现在应该可以工作了。

票数 25
EN

Stack Overflow用户

发布于 2011-11-17 02:09:03

请参阅gitignore手册中的示例:

"Documentation/*.html“与"Documentation/git.html”匹配,但与"Documentation/ppc/ppc.html“或"tools/perf/Documentation/perf.html"不匹配

因此,.idea/workspace.xml将匹配根目录,而不是someapp/src/.idea/workspace.xml

但根据您的fnmatch实现,这是您在.gitignore中需要的:

代码语言:javascript
复制
.idea/workspace.xml
**/.idea/workspace.xml
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8156299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档