2016-11-29 367 views
0

假設我有我的倉庫結構是這樣的:git倉庫:如何忽略庫的子文件夾(即其子文件夾的.git /)

MyApp/ 
    .git/ 
    .gitignore 
    File1 
    dir1/ 
     File2 
    src/ 
     File3 
     File4 
     module1/ 
      .git/ 
      .gitignore 
      foo.cpp 
     module2/ 
      .git/ 
      .gitignore 
      bar.cpp 
     ... 

換句話說,我有一個包含一些深層次的子文件夾被稱爲資源庫子文件夾。

如何在MyApp存儲庫中寫入.gitignore或通過其他方式忽略MyApp視圖中的所有存儲庫子文件夾?它們顯然被忽略,因爲它們已經由其他獨立存儲庫管理。

- 或 -

任何標準的方式來處理這個「混帳:庫庫中」的情況下,如果「忽略」是不是要走的路?

+0

有人誰留下-1分,請你解釋一下嗎?這樣我就可以改進我問這個問題的方式。 –

回答

1

我的目的是自動忽略包含.git/

文件夾文件夾的那些內容是已經忽視,作爲主要的Git回購只會錄製成gitlinkspecial entry in the index)。
這隻會記錄module1module2(而不是他們的內容)

如果你想記錄模塊1,你仍然需要一個的.gitignore(用一個簡單的src/module*,沒有尾隨斜線,你千萬不要忽視一個文件夾,只有一個gitlink)
你不能指示git自動忽略一個gitlink,你必須在.gitignore中指定它。

+0

這似乎不正確。至少在我的cygwin git中:較低版本庫中的'1.c'和'2.c'這樣的文件可以添加到上面的git版本庫中。 –

+0

你使用的是什麼git版本?不需要cygwin,git for Windows就足夠了。 – VonC

+0

你是對的! Windows的Git會自動跳過子庫!對我來說,奇怪的是Cygwin上的Git版本比2.8.3的Git版本更高(2.6.3)。 –

0

我正確理解你的問題,然後雖然沒有「自動忽略通過.git標識」,一個簡單的方法來忽略module1,2 .... n個子樹是創建一個.gitignore文件myApp/src文件夾並插入值:

module*/ 

然後保存該文件,您應該達到所需的結果。

+1

要僅匹配目錄,請寫入'module * /',即有斜槓。 – j6t

+0

謝謝@ j6t!相應地測試並增強了我的答案 – Pancho