2015-04-30 35 views
-1

我有一個根文件夾,其大小爲GBs。很多是build的東西。 我只想在根目錄下源代碼控制文件夾code,而且只有*.c*.h文件在其中。在code中還有其他項目和解決方案文件,如*.slngit忽略所有文件類型期望子文件夾中的特殊類型

.gitignore文件是:

* 
!/code 
!.gitignore 
!/code/**/*.h 
!/code/**/*.c 

git add .git status顯示

$ git status 
On branch master 

Initial commit 

Changes to be committed: 
    (use "git rm --cached <file>..." to unstage) 

     new file: .gitignore 
     new file: code/a.c 
     new file: code/a.h 

雖然,這個工程的文件夾code但它不爲code任何子目錄工作。我也有*.h*.c文件在code/f1code/f2之內等等。

我的git --versiongit version 1.9.5-preview20150319。我在窗戶上。

如何實現這一目標?

+0

您應該**重新考慮您組織代碼的方式。將* all *添加到'.gitignore'中,然後異常(包括'.gitignore'本身)在我看來就像是將所有構建材料放入單個文件夾(「./build」?)你將它添加到'.gitignore',以及你想忽略的文件類型('* .exe','*〜'等) –

+0

@KeillЯandor我的代碼有'build'和其他'code'和'code2 '文件夾..這是很好的。我只是沒有提到要減少問題的複雜性。真正的問題是,如果我不能有選擇地刪除'.sln','.txt'代碼中的什麼不是..文件。所以我應該如何編寫我的'.gitignore'文件。 'code'中有很多這樣的文件.Git在某些操作中需要時間,然後在大回購中。 –

+0

我不知道我是否理解你的問題。您**可以**選擇性地刪除整個項目中的某些文件。例如,爲了忽略「.o」文件,只需將'* .o'添加到'.gitignore' –

回答

1

簡單地寫

!code/**.c 
!code/**.h 

不要使用絕對路徑(以 '/')當使用**。

+0

如果我這樣做,不會考慮所有其他目錄也爲這些文件?這可能需要時間。 –

+0

答覆已更新。使用'code'文件夾名稱,但不要用斜槓'/'來啓動它 –

+0

你是否建議只將它放在我的'.gitignore'文件中?我試圖在'.giignore'文件中替換相應的行。沒有工作..在'git status'代碼文件夾從不顯示爲untracked文件.. –

相關問題