我想在一个文件夹中有多个文件由不同的git存储库管理。有可能吗?
我有一个项目的以下文件夹结构。它是Git存储库的一部分:
plugins/
- plugin.a.php
- plugin.b.php
- plugin.c.php
我希望plugin.b.php
成为另一个回购的一部分。例如,我希望将此插件的开发托管在github上。在不同的项目中同时使用和开发。
当我对plugin.b.php
使用一个git子模块时,我需要一个空文件夹来初始化子模块,所以我有一个结构:
plugins/
- plugin.a.php
newfolder/
- plugin.b.php
- plugin.c.php
plugin.b.php
将无法加载,例如,我的应用仅从plugins/
的根目录加载文件。并且,我不想修改应用程序。
有没有这样做?我可以想到很多我希望使用类似工作流程的情况。即使在不同的回购中同时拥有plugin.b.php
和plugin.c.php
。
由于
答案 0 :(得分:2)
查看--git-dir
, --work-tree
, GIT_DIR
and GIT_WORK_TREE
您应该能够在其他位置创建存储库,并将其工作目录设置为正常路径。只需将一个文件添加到第二个存储库即可。
答案 1 :(得分:2)
请参阅@tanascius的回答,其中提供了在一个目录中使用多个git回购的正确答案。
我正在回答我自己的问题:问题的例子和GitHub。因为有一个小警告...
pluginb
& pluginc
在plugins
文件夹中包含相同的命名文件。虽然这不太可能,但作为github repos,它们都有github README文件导致混乱。
对于低文件数情况,我已经决定使用符号链接(并将回购内容保留在可选的主回购中):
.git/
.gitignore = .repos/
.repos/
.git/
- pluginb/
README
plugin.b.php
- pluginc/
README
plugin.c.php
plugins/
- plugin.a.php
- symbolic-link = plugin.b.php
- symbolic-link = plugin.c.php