【问题标题】:How can I .gitignore all files in directory except those starting with pattern?我如何 .gitignore 目录中的所有文件,除了那些以模式开头的文件?
【发布时间】:2016-07-04 12:00:59
【问题描述】:

我的目录结构如下:

project
  modules
    some-company-foo
    different-company-bar
    mycompany-a
    mycompany-b
    mycompany-c 

我怎样才能忽略模块中的所有文件,除了那些 mycompany 开头的文件?

类似于git ignore all except subfolder,但使用通配符。我不想维护.gitignore 中每个mycompany-... 文件夹的列表。

根据其他答案,我尝试使用以下内容创建modules/.gitignore

/*
# Do not ignore mycompany modules
!/mycompany*

modules 根本没有在 project/.gitignore 中提及。

但这不起作用。例如,

git add /Users/mike/Documents/project/modules/mycompany-faq/questions/somefile.md

失败:

The following paths are ignored by one of your .gitignore files:
modules/mycompany-faq/questions/somefile.md
Use -f if you really want to add them

如何忽略modules 中的所有文件,除了以mycompany 开头的文件

【问题讨论】:

  • 您使用的是哪个版本的 Git?它对我有用。
  • git version 2.7.4 (Apple Git-66)
  • @JonathanWakely 多亏了您的测试,我已经找到了答案——您要粘贴“按原样工作”以便获得分数吗?我将添加导致问题的原因。
  • 我有足够的代表,很高兴你明白了。注:该 paste.fedoraproject.org 链接将在某个时候过期,如果您想保留信息,请将内容复制到您的答案中。
  • @JonathanWakely 但是你在 94K - 你可以得到一个杯子和一些贴纸! meta.stackoverflow.com/questions/291791/…????

标签: git gitignore


【解决方案1】:

@jonathanwakely 添加你自己的答案,我会给你分数!

配置实际上是正确的 - 感谢@jonathanwakely's demo,它在一个新文件夹中工作。

问题是更高级别的.gitignore 文件 - 在项目顶部上方,忽略了modules 目录。

我之前曾寻找过~/Documents/.gitignore~/.gitignore,但还有另一个名称不同的.gitignore。我可以通过以下方式找到它:

> git check-ignore -v modules/mycompany-faq/questions/ssl-or-https.md

/Users/mike/.gitignore_global:28:modules    modules/mycompany-foo/somefile.md

即,.gitignore_global 被设置为忽略 modules 目录。

【讨论】:

    【解决方案2】:

    On the .gitignore manual

    如果该文件的父目录无法重新包含该文件 文件被排除。

    所以你需要指定完整路径,比如

    !/Users/mike/Documents/project/modules/mycompany*
    

    【讨论】:

    • 但是 OP 说 “并且在 project/.gitignore 中根本没有提到模块。”
    • 他忽略了 /*。所以 git 不会扫描它看里面有什么,也不会设计里面的文件。
    • 这在modules 子目录中,您链接到的手册说:“可选前缀“!”否定模式;任何被排除的匹配文件之前的模式将再次被包含在内。"
    • 父级之前被忽略了,所以git不会看到里面有什么,也无法归档modules/目录。请再次阅读我的回答。
    • 我已经读过了。这是错的。我刚刚测试了 OP 声称在做什么,并且它有效。 modules 目录被排除在外,请再次阅读问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 2011-08-01
    相关资源
    最近更新 更多