2012-12-24 41 views
4

我有一個項目的結構是這樣的:如何設置的.gitignore忽略所有.jar文件,但不是預期的文件夾

/proj/a/file.jar 
/proj/a/1/file.jar 
/proj/b/file.jar 
/proj/b/1/file.jar 
/proj/b/2/1/file.jar 
/proj/c/file.jar 
/proj/c/1/file.jar 
/proj/c/2/1/file.jar 

我試圖忽略所有jar文件除了c文件夾和所有嵌套的文件夾。我應該如何設置.gitignore?

*.jar 
!c/*.jar 

不起作用。這也:

*.jar 
!c/*/*.jar 

這:

*.jar 
!/proj/c/*/*.jar 

這:

*.jar 
!/proj/c/**/*.jar 

難道我錯過了什麼?

+1

它應該工作:https://gist.github.com/92a07fbe1f00ae9b5169 – ThiefMaster

+0

ThiefMaster,謝謝,它的工作原理。但是在真正的項目中,嵌套的級別從文件到文件是不同的。我應該將所有可能的級別寫入gitignore,比如「/proj/c/*/*.jar」,「/proj/c/*/*/*.jar」,「/ proj/c/*/*/*/* .jar「等等?像「/proj/c/**/*.jar」不起作用。 (我已經編輯了我的問題以使其更清楚。 –

+0

是的,如果不支持'**',則需要分別編寫每個級別的嵌套,或者可以在子目錄中創建單獨的.gitignore文件, !*。jar'。 – ThiefMaster

回答

6

Git不會支持**風格的通配符,所以你可以使用完整路徑(即/whatever/*/*/*.jar等),以反映正確數量的目錄層次的,或者你可以簡單地把含有!*.jar你想要的文件夾內的文件.gitignore統一管理JAR文件。

+0

它適合我...很好 –

相關問題