一般问题是:如何在一个intellij项目中同时使用许多不同的git repos。 git repos需要在主应用程序内部(也就是一个git repo)。我不能使用符号链接,因为我无法提交
我有2个git repos
一个用于主应用程序,另一个用于我在几个项目中使用的库。
这是怎么回事:我有主应用程序。通过作曲家,我将我的库/包添加到应用程序中。
问题:
文件夹结构:
开发
IdeaProjects/myappA
注意:还有IdeaProjects myappB
等
IdeaProjects/mylib
在myappA中有
IdeaProjects/myappA/vendor/mylib
服务器部署文件夹:
/var/www/www.myappA.com/
我对库进行了大量的更改,当我处理myappA
时,我将其作为另一个模块打开,因此我对该文件夹中的mylib
进行了代码更改/ module实际上包含mylib
的原始源代码。现在我不希望每次做一个微小的改变时都能安装或更新作曲家。所以我所做的就是每次通过intellij从库mylib
部署文件,直接保存到我的主应用程序的composer安装文件夹中,例如到IdeaProjects/myappA/vendor/mylib
。现在的问题是,我需要将以及部署到服务器部署文件夹。但似乎无法使用intellij将文件部署到两个开箱即用的文件夹中。
我还能做什么?
目前我手动使用短键触发ant构建,然后将文件夹IdeaProjects/myappA/vendor/mylib
复制到服务器部署目录。
答案 0 :(得分:4)
根据您的设置,有多种解决方案:
intellij中的解决方案:只需将mylib作为myapp项目中的模块导入
转到File > Project Settings > Modules
,点击+
,然后选择import module
git native解决方案:使用submodules
子模块允许您将Git存储库保存为另一个Git存储库的子目录。这使您可以将另一个存储库克隆到项目中,并使您的提交保持独立。
请注意,使用子模块时存在一些怪癖,尤其是使引用的子模块保持最新的方式
为了完整性:如果您使用gradle或maven而不是ant,则可以使用各自的项目视图并使用+
添加多个build.gradle或pom.xml文件,这些文件会自动导入这些项目作为intellij的模块。
答案 1 :(得分:0)
我认为模块方法确实适合您的情况,是的,您可以为每个模块使用不同的git repo。右键单击项目根目录new->module
或file->new module from existing source
如果您检查Settings | Version Control
您应该看到列表,Intellij还应该自动检测项目中的每个git存储库。
您还可以加快某些操作,例如git pull
,而不必从每个存储库(VCS -> Git -> Pull
)提取VCS -> Update Project
或ctrl-t
({{1}在mac上)