2011-05-03 33 views
4

的文件我有一個文件夾是一個純粹的T4模板文件夾,但它輸出代碼生成的文件到其他目錄。所以我打算忽略除* .tt文件(即* .cs,* .master,*。resx等)以外的所有內容。有一個問題。我有一個名爲static的子文件夾,其中包含永遠不應被忽略的文件。的.gitignore忽略所有文件,然後遞歸允許一定類型

/Test.tt 
/Test.cs 
/TestHtml.tt 
/TestHtml.html 
/Static 
    /Sub/Sub.cs 
    /Sub/Sub2/Sub2.cs 
    /Sub3/Sub4/Sub5/Sub5.html 

想忽略/Test.cs和/Test.html但包括所有其他文件。我已經試過如下:

/.gitignore

# Ignore all 
* 

# But not these files... 
!.gitignore 
!*.tt 

/Static/.gitignore

!*.* 
#also have just tried blank 

我不能讓git的忽略正確的事情......最主要的問題是'遞歸排除'我想要靜態/

回答

12

你需要你的錨,否則*將繼續匹配,即使在未忽略目錄中的所有文件。

例如

/* 

!.gitignore 
!*.tt 
!/Static/ 
+0

我已經把這個,但是,git的狀態顯示* .TT(好)和靜態/。我不知道如果靜態/意味着它將加入所有文件,所以我做了git的添加,其次是git的LS-文件,但在靜態無添加文件/(注意,沒有文件存在於靜態/直到至少一個級別 - 即靜態/*/*.*首先是「有效」級別,但也有更深層次)。任何其他想法? – Terry 2011-05-04 02:51:54

+0

@Terry:我剛剛用這個'.gitignore'運行了一個測試用例,它適用於我。除了我描述的'.git/info/exclude'或任何其他自定義忽略文件之外,還有其他'.gitignore'文件嗎? – 2011-05-04 07:25:35

+0

我沒有任何其他'.gitignore'文件。我沒有'.git/info/exclude'文件。我確實有一個全局的'.gitignore',但它忽略了標準的'Visual Studio Build Files'...(即不提及* .cs或/ Static)。我是否應該將屏幕截圖和ls轉儲到Dropbox進行檢查? – Terry 2011-05-04 07:43:19

相關問題