[英]ignore gitignore files in subdirectories
這是我的“root”.gitignore的內容
# exclude everything ...
*
# ...except
!/.gitignore
!*/
!/modules/wp-azth/**
問題是,在modules文件夾下,我有很多帶有.gitignore文件的第三方模塊。
使用上面的規則,所有第三方模塊文件夾都被忽略,但他們的.gitignore文件不是(我當然不需要它)
有沒有辦法忽略忽略子文件夾中的.gitignore文件? 也許.git / config可以用於此嗎?
(我認為git的一個不好的行為即使被忽略也會考慮它們)
更新 :似乎缺少git,它允許忽略文件夾“任意”不忽略自己在一個被忽略的子目錄中放置(由任何人)的gitignore文件中的.gitignore規則。 忽略的文件夾通常可能包含動態,臨時或第三方(緩存,臨時,插件等)的文件...因此git允許僅使用簡單的!.gitignore作為子目錄中的規則來創建不需要的行為。
* .gitignore將工作,但git仍將跟蹤它已經跟蹤的.gitignore文件
運行的兩個命令之間唯一不同的是我將*.gitignore
(通過您在中間看到的命令)添加到我的根級別.gitignore
文件。
可選前綴“!” 否定了這種模式; 之前模式排除的任何匹配文件將再次包含在內。
來自https://git-scm.com/docs/gitignore
這意味着中級.gitignore文件可能包含!*。gitignore,這可能會搞砸更高級別的聲明。
問題是/modules
目錄中的.gitignore
文件:
git check-ignore -v -n /modules/TC-JSON-API/storage/app/.gitignore
返回: /modules/TC-JSON-API/storage/app/.gitignore:2:!.gitignore /modules/TC-JSON-API/storage/app/.gitignore
:2:!. /modules/TC-JSON-API/storage/app/.gitignore:2:!.gitignore /modules/TC-JSON-API/storage/app/.gitignore
解決方案就是將/modules/*
添加到我的.gitignore
:
# exclude everything ...
*
# ...except
!/.gitignore
!*/
!/modules/wp-azth/**
成為
# exclude everything ...
*
modules/*
# ...except
!/.gitignore
!*/
!/modules/wp-azth/**
我不明白為什么git需要這種“規范”...沒有這個規則只有.gitignore文件被忽略的文件夾在commit中被處理/列出。 但是現在它有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.