【问题标题】:git ignore multiple matching filesgit忽略多个匹配文件
【发布时间】:2011-12-18 07:47:50
【问题描述】:

我尝试通过相对路径忽略目录中的文件。例如。我在工作树lib/file.f 中有几个目录,我希望忽略此文件的所有出现。我试过了

lib/file.f

但这不起作用。

【问题讨论】:

    标签: git


    【解决方案1】:

    地点

    */lib/file.f
    

    在您的.gitignore 中。这将导致 git 忽略 project/<DIR>/lib/file.f 形式的任何文件,假设 .gitignore 位于 project 目录中。 要让 git 忽略 lib/file.f 两个目录,您还必须添加

    */*/lib/file.f
    

    .gitignore,等等。

    当然要简单得多,就是放置

    *file.f
    

    .gitignore 中阻止所有名为file.f 的文件,但您的问题似乎表明至少有一个同名的文件您不想忽略。

    【讨论】:

    • @Holf file.f 不起作用,因为您引用文件本身,没有路径(并且您的项目的根文件夹中可能没有 file.f)。这就是为什么 unutbu 的答案包含所有示例的完整路径。 *file.f 有效,因为您使用了* 通配符,因此它将忽略与您的模式匹配的任何文件 - 真的是您想要实现的目标吗?
    【解决方案2】:

    您可能还想从 git 缓存中删除该文件,以检查您刚刚忽略的内容:

    git rm --cached lib/file.f
    

    如果你已经将文件添加到 git index

    【讨论】:

      【解决方案3】:

      如果您想指定特定文件夹下的所有子文件夹,请使用/**/。要忽略 /src/main/ 文件夹和子文件夹中的所有 file.f 文件,请使用:

      /src/main/**/file.f
      

      【讨论】:

        猜你喜欢
        • 2016-04-09
        • 1970-01-01
        • 1970-01-01
        • 2018-08-31
        • 2022-12-07
        • 2011-08-01
        • 2016-05-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多