2011-08-09 185 views
7

我通過其他問題進行了搜索,但找不到適用於我的項目的工作解決方案。 擁有Magento的項目,我想排除這個以外的一切:Git忽略除子文件夾以外的所有內容

/app/design/frontend/default/theme_name # and obviously all subfolders 
/skin/frontend/default/theme_name # and all subfolders 

我已經嘗試了很多的組合,但沒有運氣。目前,我堅持這個.gitignore文件以:

* 
!/app/ 
!/app/* 

app/* 
!/app/design/ 
!/app/design/* 

不過,這並不遞歸低於設計文件的工作。它只在我創建的設計文件夾內添加了一個測試文件。

回答

5

看我的答案在這裏:Can't understand how gitignore ignores the folders

從報價:

下面的討論是有益的: http://git.661346.n2.nabble.com/negated-list-in-gitignore-no-fun-td1675067.html ,尤其是從萊納斯如下:

這是由設計。您已選擇忽略這些目錄;他們 自己匹配「*」。因此,'git add。'不下降到他們 尋找文件。

因此,基本上,您必須進入每個級別,取消管理該文件夾, 並忽略該文件夾內的內容。

此外,你應該看看在子目錄裏,而不是在根級別只因爲它變得相當複雜有.gitignore如果你有去子目錄級別從根.gitignore的,因爲上述說明中,由於在每個級別,您必須取消管理該文件夾,然後忽略內容等。

+0

謝謝,它幫助我理解事情如何與git :) – s3v3n

+0

設計中的錯誤:o –

+0

@Briad Gordon - 這是你的Linus:D – manojlds

5

在這裏做了一些研究。什麼工作對我來說是:

/* 
!/directory 
!/another 
/another/* 
!/another/directory 

隨着/directory這個子目錄進行準確跟蹤。奇怪的是,它不適用於第一行只有/或只有* - 我不知道爲什麼。

+0

不幸的是'!/另一個/目錄'不適合我。我應該忽略/統一每個級別。 – s3v3n

+0

我不知道它是否依賴於git版本。我使用'git version 1.7.4.1' –

+0

我有完全一樣的'$ git --version'git version 1.7.4.1' – s3v3n

0
/** 
!/**/ 
!/app/design/frontend/default/theme_name/** 
!/skin/frontend/default/theme_name/** 

釋:

  1. 忽略所有文件和文件夾,遞歸(注意雙星號)。
  2. 排除所有文件夾,遞歸(按設計的git不會犯空文件夾,裏面全被忽略的文件的文件夾被算作。我們需要這使得未來兩年不包括工作)
  3. 排除所有文件和文件夾,遞歸,從這個位置。
  4. 從此位置遞歸排除所有文件和文件夾。

我通常這樣做的子文件夾,所以我不知道如果第一行將工作。

相關問題