【问题标题】:Subfolder gitignore not un-ignoring files ignored by parent gitignore子文件夹 gitignore 不取消忽略父 gitignore 忽略的文件
【发布时间】:2022-11-16 07:14:54
【问题描述】:

首先让我说这不是我的项目,我被拉进去了,我不支持忽略所有……也就是说,这就是我的立场……

回购的根有以下.gitignore

#########
#Exclude all
#########
################# many other project specific files unignored*****
*
!*/
!.gitignore
#########
#C-Sharp-files
#########
!*.cs
!*.csproj
!*.sln
!*.resx
!*.config
!*.ico
!*.settings
!*.exe
!*.dll
!*.ld

在子文件夹 alpha/test_gui/gui_source 中有一个 bin 文件夹。在 test_gui 文件夹中,我有另一个 .gitignore 文件,其中包含以下行

[Bb]in/

我确实想忽略这个文件夹,但是,在 bin 文件夹中,有一个 scripts 文件夹我想提交给源。我能让它工作的唯一方法是将以下内容添加到根.gitignore

# ./.gitignore
!alpha/test_gui/gui_source/bin/scripts/*

和以下.gitignore in alpha/test_gui/gui_source`

# ./alpha/test_gui/gui_source/.gitignore
![Bb]in/
[Bb]in/*
![Bb]in/scripts/*

有更清洁的方法吗?

【问题讨论】:

    标签: git gitignore


    【解决方案1】:

    忽略文件夹意味着根本不检查其内容。不会检查其中的任何路径。你不想要那个。您不想草率地忽略 alpha/test_gui/bin 文件夹,您确实想检查其中的一些内容。

    alpha/test_gui/.gitignore

    bin/**
    !bin/scripts/**
    # and at the bottom:
    !*/
    

    除非你真的确定有你想要完全忽略的目录,否则最容易理解的是使用 dir/** 模式并将 !*/ 放在每个 .gitignore 的底部;那么你真正想要完全忽略的任何目录,也许是因为扫描它们变得非常慢,列出那些!*/ 所以他们将是 .gitignore 中的 "last matching pattern"

    【讨论】:

      猜你喜欢
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 2014-07-06
      • 2021-09-24
      • 2019-04-29
      • 2018-05-02
      • 1970-01-01
      相关资源
      最近更新 更多