2009-06-13 134 views
81

任何人都知道是否可以忽略由git管理的文件結構中的特定目錄的所有實例。Git忽略和Maven目標

我正在尋找排除maven項目中的所有'目標'文件夾與一些子模塊。我知道我可以明確地排除頂層.gitignore中的每一個,但是我真的很希望能夠指定一個像**/target/*這樣的模式,讓它自動忽略子目錄中的實例?

這可能嗎?

+0

使用什麼配置進行這項工作? * /。settings/*只會忽略'xxx/.settings/*',而不是'.settings/*'或'xxx/yyy/.settings/*':忽略模式似乎不會遞歸應用。另見http://stackoverflow.com/questions/971465/git-ignore-certain-files-contained-in-specific-folders。 – VonC 2009-06-14 13:46:25

回答

67

可以使用.gitignore文件中的模式。請參閱gitignore man page。模式*/target/*應忽略任何名爲目標的目錄及其下的任何目錄。或者您可以嘗試*/target/**忽略目標下的所有內容。

+4

謝謝!對於任何其他人來說,這是一個.gitignore的內容,可以跳過美國日食和日食嫌疑犯。 目標/ * * /目標/ * .metadata * tar.gz的 的.classpath 的.project * /。設置/ * – sgargan 2009-06-14 03:26:48

+2

用什麼配置你在做這項工作? * /。settings/*只會忽略'xxx/.settings/*',而不是'.settings/*'或'xxx/yyy/.settings/*':忽略模式似乎不會遞歸應用。另見http://stackoverflow.com/questions/971465/git-ignore-certain-files-contained-in-specific-folders。 – VonC 2009-06-14 13:45:55

193

.gitignore文件在根目錄下確實適用於所有子目錄。我看起來像這樣:

.classpath 
.project 
.settings/ 
target/ 

這是一個多模塊maven項目。所有的子模塊都是使用m2eclipse作爲單獨的eclipse項目導入的。我沒有進一步的.gitignore文件。事實上,如果你在gitignore man page看:

模式在相同的目錄路徑,或以任何父目錄.gitignore文件 讀...

所以這應該適用於您。

1

正如評論已經指出的Abhijeet你可以添加一行:

/target/** 

排除文件夾\.git\info\

然後,如果您想要擺脫遠程倉庫中的那個target文件夾,您需要先從本地存儲庫手動刪除此文件夾,然後進行提交併將其推送。那是因爲git會首先顯示目標文件夾的內容。