Eclipse:将一个项目添加到另一个项目的构建路径时如何忽略.git子目录?

问题描述:

我正在开发一款应用程序,该应用程序应该既可以在Android上运行,也可以在普通的Java SE上运行。Eclipse:将一个项目添加到另一个项目的构建路径时如何忽略.git子目录?

我有一个eclipse项目叫做foobar核心其中包含Android和SE版本使用的代码。我有另一个项目叫做foobar-android,其中包含所有android特定的代码。

我需要引用一些在foobar的,Android的项目foobar的核心码的,所以我在设置中添加foobar的核心foobar的,Android的 - > Java构建路径 - >项目 - >构建路径上的必需项目。这工作正常,因为我可以使用代码foobare核心foobar-android现在。

这里的问题:两个foobar的核心foobar的,Android的是独立的Git仓库,这意味着他们都有一个git的子目录。现在当我编译foobar-android时,我在“控制台”选项卡上收到很多警告。它们看起来像这样:

/foobar-core/src/.git/HEAD conflicts with another file already put at .git/HEAD 
/foobar-core/src/.git/config conflicts with another file already put at .git/config 
/foobar-core/src/.git/description conflicts with another file already put at > .git/description 
/foobar-core/src/.git/hooks/applypatch-msg.sample conflicts with another file already > put at .git/hooks/applypatch-msg.sample 

如何告知Eclipse在从foobar-core项目导入源时忽略.git文件?

即使你只有一个git repo,最好忽略.git目录,因为其他Eclipse会浪费大量时间查看其中的文件,即使它不需要对它执行任何操作。特别是,当您进行项目范围搜索时,Eclipse将搜索.git目录中的所有文件,这需要很长时间,并最终显示出很多重复项(或几乎重复的文件,旧版本的同一文件找到相同的搜索词)。

我认为Eclipse git扩展可能会处理这个问题,但是如果你不想安装另一个扩展,我发现它告诉Eclipse所有的.git目录都是“Derived”,这似乎是最好的方式使Eclipse稍微忽略包含的文件。

您可以通过从Package Explorer视图切换到Navigator视图来执行此操作,您应该在该视图中看到.git文件夹。右键单击.git文件夹,选择属性,从设置选择器中选择资源,然后选中“派生”框。

+0

谢谢,这实际上回答了这个问题,不像上面提到的使用.gitignore的'答案'。 – 2011-07-06 19:35:38

+0

是的,我得到了一个'答案'以及:) – barrycburton 2011-07-07 22:27:04

我会设置一个.gitignore文件,该文件完全忽略了整个foobar-code项目。

+2

也许我的问题解释不够好:提交git时不会发生错误,但是当我*编译* Eclipse中的项目时不会发生错误。这是我得到的:http://i.imgur.com/PuCbH.png – rodion 2010-07-05 09:46:22

+0

@rodion:这很有趣,我仍然会尝试gitignore文件。 – 2010-07-05 14:07:52

+2

哈哈! Josh K,你很搞笑! – barrycburton 2011-04-06 18:13:37