簡體   English   中英

忽略子目錄中的gitignore文件

[英]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作為子目錄中的規則來創建不需要的行為。

git gui截圖

* .gitignore將工作,但git仍將跟蹤它已經跟蹤的.gitignore文件


運行的兩個命令之間唯一不同的是我將*.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.

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