小编典典

.gitignore 排除文件夹但包含特定子文件夹

all

我有application/添加到.gitignore. 文件夹里面是
application/文件夹application/language/gr。如何包含此文件夹?

我试过这个

application/
!application/language/gr/

没有运气…


阅读 153

收藏
2022-02-25

共1个答案

小编典典

如果您 exclude application/,那么它下面的所有内容都将始终被排除(即使后来的一些否定排除模式(“涡 nignore”)可能与
下的某些内容匹配application/)。

为了做你想做的事,你必须“忽略”你想要“忽略”的任何东西的每个父目录。通常你最终会成对地为这种情况编写规则:忽略目录中的所有内容,但不忽略某些特定的子目录。

# you can skip this first one if it is not already excluded by prior patterns
!application/

application/*
!application/language/

application/language/*
!application/language/gr/

注意
尾随/*很重要:

  • 该模式dir/排除了一个名为的目录dir和(隐式)它下面的所有内容。
    有了dir/,Git 将永远不会dir查看dir.

  • 模式本身并dir/*没有说明什么。dir它只是排除了dir. 使用dir/*,Git 将处理 的直接内容dir,让其他模式有机会“不排除”一些内容 ( !dir/sub/)。

2022-02-25