【问题标题】:Gitignore everything except one file extensionGitignore 除了一个文件扩展名之外的所有内容
【发布时间】:2021-11-22 19:41:40
【问题描述】:

我试图忽略除docker-compose.yml 文件之外的所有内容:

- root
  - .git/
  - .gitignore
  - folderA
    - docker-compose.yml
  - folderB
    - .git/
    - data/
    - docker-compose.yml

在上面的目录示例中,git 应该跟踪的唯一内容是 docker-compose.yml 文件和 .gitignore 文件。

我尝试了以下.gitignore:

/*
!.gitignore
!docker-compose.yml

还有

/*
!.gitignore
!**docker-compose.yml

还有

/*
!.gitignore
!**/docker-compose.yml

还有

/*
!.gitignore
!/*/docker-compose.yml

我也尝试了上面的选项,顶部只有*,而不是/*

所有这些都会导致只跟踪 .gitignore 文件。

我可能错过了一些非常愚蠢和小的东西,但是嘿嘿。提前致谢。

更新

我已经接近解决方案:

*
!/.gitignore
!*/
!*/docker-compose.yml

它现在成功包含所有 docker-compose.yml 文件,但是它现在还包含子存储库和一些随机文件,例如 root/nextcloud/data/html/core/vendor/zxcvbn/LICENSE.txt

【问题讨论】:

    标签: gitignore


    【解决方案1】:

    如果你使用它,你可以忽略所有第三级子文件夹

    /*/*/*
    

    因此,按照您的示例结构,更新后的包含文件将是根文件夹(第 1 级)中存在的所有文件以及文件夹“.git”、“folderA”和“folderB”(第 2 级)中存在的所有文件。同时,“folderB”中的 .git/ 和 data/ 文件夹(第 3 级)将被忽略。如果“.git/”为空,你会得到:

    - root
      - .gitignore
      - folderA
        - docker-compose.yml
      - folderB
        - docker-compose.yml
    

    如果您还想排除除 docker-compose.yml 之外的所有其他文件,则需要排除所有扩展名,仅包括 docker-compose.yml 和 gitignore,如下所示:

    /*/*/*
    *.*
    !.gitignore
    !docker-compose.yml
    

    【讨论】:

      【解决方案2】:

      你可以忽略所有

      *
      

      (就像你已经做过的那样)

      现在您必须知道您不想忽略的所有文件的完整路径。路径从.gitignore root 开始,因此您的root 文件夹是不必要的)

      更新文件夹结构:

      - .git/
      - .gitignore
      - folderA
        - docker-compose.yml
      - folderB
        - .git/
        - data/
        - docker-compose.yml
      

      作为目录结构的示例,您可以添加以下两个条目:

      !folderA/docker-compose.yml
      !folderB/docker-compose.yml
      

      【讨论】:

      • 我希望这对所有 folderX 都是通用的,而不是单独指定每个文件夹
      • 据我所知,这是不可能的。在docu 中查看关于gitignore 的信息。由于性能原因,这没有实施。然后在所有子目录中搜索需要大量的精力和时间。所以你只能按照我在答案中提到的那样做:通过输入你不想想要忽略的文件的每个路径。
      • 如果我知道我只想要一个目录下的文件怎么办? Sureley 必须有办法做到这一点。不过,我确实看到了您关于时间复杂度的观点
      • 不,你不能(据我所知......)。您必须为以下每种情况写:!folder,后跟folder/*,至少!folder/file.txt
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      • 2013-07-22
      相关资源
      最近更新 更多