gitignore 不会忽略子目录中的文件
gitignore doesn't ignore files in subdirectories
我是git的新手,尝试了解gitignore
。到目前为止,我有一个我想排除的目录,名为 build
,except 文件名称为 BUILD
。
build/**
!build/**/BUILD
但似乎 BUILD 文件也被排除在外。有谁知道我做错了什么?
resource/obj1/BUILD
resource/obj2/BUILD
resource/obj3/BUILD
如果要排除整个目录,则不必指定文件。
build
和git将忽略构建目录。
您需要先排除(白名单)文件夹,然后 BUILD/
内容:
build/**
!build/**/
!build/**/BUILD/**
参见“.gitignore
exclude folder but include specific subfolder”
build/** ignores
个文件和文件夹,因此 build/aFolder/
被忽略
!build/**/BUILD/**
尝试将文件列入 build/aFolder/BUILD/
下
但是:“如果文件的父目录被排除,则无法重新包含该文件。”
并且:build/aFolder/
是一个已经被忽略的文件夹。
因此:!build/**/BUILD/**
不适用。
除非:您首先取消忽略文件夹:!build/**/
(尾随的/
很重要) :
build/aFolder/
不再被忽略,即使 build/aFolder/<files>
仍然被 build/**
忽略。
Then:!build/**/BUILD/**
可以应用到文件夹BUILD/
content(它的文件),因为文件夹 !build/aFolder/
和 !build/aFolder/BUILD/
未 被忽略。
然后检查这是否有效:
git check-ignore -v -- build/aFile
git check-ignore -v -- build/path/to/BUILD/aFile
第一个命令应该 return 一个 .gitignore
规则行。
第二个命令不应该 return 任何东西,因为文件不应该被忽略。
我是git的新手,尝试了解gitignore
。到目前为止,我有一个我想排除的目录,名为 build
,except 文件名称为 BUILD
。
build/**
!build/**/BUILD
但似乎 BUILD 文件也被排除在外。有谁知道我做错了什么?
resource/obj1/BUILD
resource/obj2/BUILD
resource/obj3/BUILD
如果要排除整个目录,则不必指定文件。
build
和git将忽略构建目录。
您需要先排除(白名单)文件夹,然后 BUILD/
内容:
build/**
!build/**/
!build/**/BUILD/**
参见“.gitignore
exclude folder but include specific subfolder”
build/** ignores
个文件和文件夹,因此build/aFolder/
被忽略!build/**/BUILD/**
尝试将文件列入build/aFolder/BUILD/
下
但是:“如果文件的父目录被排除,则无法重新包含该文件。”
并且:build/aFolder/
是一个已经被忽略的文件夹。
因此:!build/**/BUILD/**
不适用。
除非:您首先取消忽略文件夹:!build/**/
(尾随的/
很重要) :
build/aFolder/
不再被忽略,即使 build/aFolder/<files>
仍然被 build/**
忽略。
Then:!build/**/BUILD/**
可以应用到文件夹BUILD/
content(它的文件),因为文件夹 !build/aFolder/
和 !build/aFolder/BUILD/
未 被忽略。
然后检查这是否有效:
git check-ignore -v -- build/aFile
git check-ignore -v -- build/path/to/BUILD/aFile
第一个命令应该 return 一个 .gitignore
规则行。
第二个命令不应该 return 任何东西,因为文件不应该被忽略。