2011-11-17 48 views
6

我有一個存儲庫和一個子模塊。對我來說,這個子模塊是隻讀的,所以我使用的是submodule.Module.ignore = dirty。提交時忽略子模塊的髒狀態

這適用於'git status',但是當我提交時,整個子模塊被掃描,並且在git的註釋中,我可以看到它很髒。

有沒有辦法避免這種情況?

回答

2

如果您確實不希望看到子模塊的更改,則可以使用'*'模式將一行添加到子模塊內的.git/info/exclude。

這將導致子模塊始終將自己報告爲乾淨,無論發生了什麼變化。

echo "*" >> path/to/submodule/.git/info/exclude 
+1

儘管爲了防止shell擴展,您可能想要轉義那個'*'。 –

+0

謝謝 - 修復它。 – Eric

+0

這會有所幫助,但它也可以防止從子模塊內部看到更改。我只是希望它們在外部被忽略... – orgads

-1

你可能要編輯的.git/info/exclude文件,添加一個模式被忽略。但是對於一個子模塊來說,這是行不通的。相反,你應該從Git倉庫的根目錄編輯.git/submodule_foo/info/exclude

這是因爲,在較新版本的Git中,路徑submodule_foo/.git是一個文件,而不是目錄。它的內容讓我們知道子模塊的.git文件在哪裏:

gitdir: ../.git/modules/submodule_foo 
+0

這與問題無關。這個問題是關於在超模中提交時完全忽略內部子模塊的狀態。 – orgads