PHPStorm、供应商和多个 Git 根

Posted

技术标签:

【中文标题】PHPStorm、供应商和多个 Git 根【英文标题】:PHPStorm, Vendor and multiple Git roots 【发布时间】:2015-03-10 02:22:02 【问题描述】:

我有一个带有 composer.json 的项目,它添加了许多模块作为依赖项,我希望能够在同一个 phpStorm 项目中处理它们。当我对供应商目录中的文件进行更改并在 CLI 上运行 git status 时,我看到了差异,但是 PHPStorm 内联工具不会注册更改(左侧边栏上没有蓝线)。

如果我进入项目设置并将特定的供应商依赖项添加为 git 根目录,即包含 .git 文件夹的文件夹,IDE 开始按我的预期/希望工作。

但是,我不想为我的所有依赖项重复这个过程,感觉人工工作太多了?有没有更好的办法?

更新:仍然不高兴,当我使用供应商作为来源时,“显示历史记录”按钮不起作用。

这是我的项目结构:

/home/PhpstormProjects/MyProject/.idea (文件夹保持独立以避免 VCS 不得不忽略 .idea) /home/my-project/htdocs/ (Resource Root,有一个由 PHPStorm 自动识别的 .git repo) /home/my-project/vendor/modulenamespace/modulename/ (多个模块,每个模块都有一个 .git,但 PHPStorm 不会自动识别)

【问题讨论】:

通常 PHPStorm 会尝试识别您的 git 根并提示您添加它们。不知道为什么它不适合你。尝试重新打开项目 - PHPStorm 会提示您添加根吗? 很遗憾没有,它只有主项目作为root,没有提示添加新项目。真的很奇怪,感觉它应该可以工作,否则让IDE正确使用供应商会比它的价值更痛苦。 好的,我将我的主项目设为“资源根”,将供应商目录标记为“源”并且还排除了供应商,因此它不会阻塞索引器(我有供应商目录符号链接到资源根) 并且它们显示为未注册的 VCS 根,这意味着我可以全选并添加!不完全确定这里的“来源”是否正确,但它现在似乎已经解决了我的问题......? 【参考方案1】:

事实证明这是一个已知问题,因为 .git 存储库的深度为: https://youtrack.jetbrains.com/issue/IDEA-108316

【讨论】:

以上是关于PHPStorm、供应商和多个 Git 根的主要内容,如果未能解决你的问题,请参考以下文章

单个目录指向多个git存储库

PhpStorm:未找到类'PhpUnit Framework TestCase'(composer / autoload)

Symfony2 - 创建自己的供应商包 - 项目和 git 策略

Git 中的供应商分支

Git - 供应商文件夹修改 - .gitignore?

聚合根可以引用另一个根吗?