[英]gitignore doesn't ignore files in subdirectories
我是 git 的gitignore
並試圖理解gitignore
。 到目前為止,我有一個要排除的目錄,名為build
,名稱為BUILD
文件除外。
build/**
!build/**/BUILD
但似乎 BUILD 文件也被排除在外。 有誰知道我做錯了什么?
resource/obj1/BUILD
resource/obj2/BUILD
resource/obj3/BUILD
您需要先排除(白名單)文件夾,然后是BUILD/
內容:
build/**
!build/**/
!build/**/BUILD/**
請參閱“ .gitignore
排除文件夾但包含特定子文件夾”
build/** ignores
文件和文件夾,因此build/** ignores
build/aFolder/
!build/**/BUILD/**
嘗試同時列出build/aFolder/BUILD/
下的文件但是:“如果排除了該文件的父目錄,則無法重新包含該文件。 ”
並且: build/aFolder/
是一個已經被忽略的文件夾。
因此: !build/**/BUILD/**
不適用。
除非:您首先取消忽略文件夾: !build/**/
(尾隨/
很重要):
build/aFolder/
不再被忽略,即使build/aFolder/<files>
仍然被build/**
忽略。
然后: !build/**/BUILD/**
可以應用於文件夾BUILD/
內容(其文件),因為文件夾!build/aFolder/
和!build/aFolder/BUILD/
不會被忽略。
檢查這是否有效,然后使用:
git check-ignore -v -- build/aFile
git check-ignore -v -- build/path/to/BUILD/aFile
第一個命令應該返回一個.gitignore
規則行。
第二個命令不應返回任何內容,因為不應忽略該文件。
如果要排除整個目錄,則不必指定文件。
build
和 git 將忽略構建目錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.