2010-10-12 47 views
11

我一直拉着我的頭髮研究網絡和各種關於.gitignore文件的文檔。我有點像UNIX /終端(使用Mac OS X)n00b,我不能在我的生活中弄清楚如何忽略文件夾的內容(任何類型的內容,無論是文件還是其他文件夾,不管它有多深)。gitignore以及如何忽略一個共同的目錄名稱及其內容

我正在處理一個在一致的文件結構內生成圖像文件的項目,除了我們正在獲取關於用戶權限的合併衝突。我想忽略包含生成圖像的文件夾,這樣我們就可以避免任何進一步的拉動,不得不在每次拉動的基礎上調整權限。我只是無法讓.gitignore文件工作,所以我需要弄清楚文件夾內容匹配的正確模式。我希望它足夠普遍,因爲它可以輕鬆包含整個站點(所以如果任何文件夾包含特定的文件夾名稱,它將忽略其內容)。

我已經試過:

# Images 
resample/ 
resize/ 
min/ 

而且......

# Images 
resample/* 
resize/* 
min/* 

而且......

# Images 
*/resample/* 
*/resize/* 
*/min/* 

還有更多的組合與令人滿意的結果。我從來沒有得到foldername/**/*模式,以至於無論如何。任何關於這個問題的幫助將不勝感激!

+1

第一個例子應該工作。但它是區分大小寫的,你確定文件夾的名字都是小寫嗎? – 2010-10-12 23:37:24

+0

是的,它全部是小寫字母。 – 2010-10-13 03:45:24

回答

23

感謝以前的海報幫助。經過一番深入研究後,我發現如何正確實施新的規則。問題是,以前的圖像是被跟蹤,所以我不得不在.git/index文件中刪除提及的文件,像這樣......

// Remove all tracked files from the index 
// (doesn't remove the file, just the reference) 
git rm -r --cached . 

// Add all the files again 
// (files and folders specified by .gitignore aren't added to the index) 
git add . 

// Commit to save changes 
git commit -am "gitignore update" 
+0

感謝您的加入。我即將開始使用git,這都是需要了解的東西。 – kevpie 2010-10-13 03:55:13

+2

我認爲如果你之前已經添加了文件,你不需要'-a'在你的提交標誌中。 – Noich 2013-09-03 09:41:43

8

您正在尋找gitignore

一個gitignore文件指定的git應該忽略故意未跟蹤文件。請注意,所有 gitignore文件確實只涉及git尚未跟蹤的文件;

如果您的文件或文件夾位於存儲庫中,則必須從存儲庫中刪除它,以使其可以被忽略。

還要注意您的圖案區分大小寫。

假設這些文件夾目前不在版本控制下,您的第一個列表應該可以工作。

# Images 
resample/ 
resize/ 
min/ 
+0

謝謝你。經過一些進一步的研究和實驗,我發現了一些有趣的事情... – 2010-10-13 03:45:59

相關問題