如何让 egit 尊重多项目 git 存储库?
Posted
技术标签:
【中文标题】如何让 egit 尊重多项目 git 存储库?【英文标题】:How do I make egit respect multi-project git repository? 【发布时间】:2012-10-25 17:00:50 【问题描述】:我有一个包含多个 Eclipse 项目的 git 存储库。导入 eclipse 项目很容易,但我不知道如何让它们与 eGit 插件一起工作。
下面的树输出显示了我正在查看的目录结构的基本内容。
bash-3.2$ tree -a
.
|-- .git
...
|-- .gitignore
|-- apps
| `-- example-app
| |-- .classpath
| |-- .project
...
|-- cs-build.xml
`-- services
`-- example-app-service
|-- .classpath
|-- .project
...
如何处理这两个项目并让 eclipse 识别它们来自同一个 git 存储库?
【问题讨论】:
我想花一点时间说:我认为这个问题的真正解决方案是不使用 Egit。我所拥有的所有经验,以及我认识的每个人的所有经验都非常糟糕。它弄乱了你的回购。提交显示在 Egit 但不在 github 中,反之亦然。我知道有几个人使用 Egit 做一个项目并重新克隆整个 repo 成为每周的常规任务,因为它会变得如此混乱。我恳请您只使用命令行——它也将解决这个问题。 我没有同样的经历。 EGit 非常适合我,并直接提供关于我的工作目录相对于存储库的状态的视觉反馈。我只是无法克服一个“Eclipse 项目 = 一个 Git 存储库”的问题。我正在寻找这个解决方案。 你在哪里有困难?从 Git Repositories 视图导入它们通常可以正常工作。我唯一一次看到它搞砸了,额外的 .project 文件散布在实际项目之上。 两个项目好像同名(example-app)?这在 Eclipse 中通常是不可能的,项目共享一个命名空间,因此必须有不同的名称。对于 EGit 来说,在一个仓库中拥有多个项目是没有问题的(EGit 仓库本身就是这样的)。 我的错,树输出不正确,客户端应用程序称为“example-app”,服务器应用程序称为“example-app-service”。问题是eclipse可以很好地导入项目,但不知道它们在Git存储库中......迫使我从命令行使用Git并拒绝我eGit反馈,这使我可以方便地使用存储库。 【参考方案1】:啊哈!我已经想通了!关键是在将存储库本身建立在磁盘上的某个位置之后,在 eclipse 中导入项目。在向导期间,Eclipse 找到项目并将它们中的每一个链接到存储库。在上面的示例中,我的 Eclipse Package Explorer 现在显示
example-app [example-app master]
example-app-service [example-app master]
给我希望的线索是这里的教程:http://www.vogella.com/articles/EGit/article.html#tutorial_multiprojects
事件的确切顺序类似于......
-
文件、导入...
Git,来自 Git 的项目,下一步>
本地,下一个>
添加...、浏览、完成
从4.中选择repo,下一步>
导入现有项目,下一步>
选中所需项目旁边的复选框,然后单击完成
我离开命令行并返回 Eclipse,并通过遥控器反馈关于 repo 的状态。
我仍然不太确定将多个 Eclipse 项目保存在一个存储库中是否是一个好主意,但这不是我的存储库,它只是我必须工作的地方。
【讨论】:
“我仍然不确定将多个 Eclipse 项目保存在一个存储库中是否是个好主意。”这取决于...如果代码更改跨越多个项目(取决于它们的组织方式,这可能会或多或少地发生;横切关注点的更改肯定会这样做)你可能很高兴有一个单一的历史来处理.我们过去至少将所有项目都放在一个 subversion repo 中;现在尝试使用 git。 非常感谢。这很好用。但是我遇到了另一个相关的问题,EGit 没有获取我的*** .gitignore 文件。所以我在我的 Git 暂存视图中看到了数千个未暂存的更改。看起来你有一个类似的*** .gitignore 配置,这对你有用 EGit 吗?以上是关于如何让 egit 尊重多项目 git 存储库?的主要内容,如果未能解决你的问题,请参考以下文章
如何将移动的 git 存储库与其在 Egit 中的原始项目重新连接?