簡體   English   中英

gitignore 不會忽略子目錄中的文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM