git repo总是必须在它自己的目录中

时间:2010-03-11 12:22:34

标签: git github

我想在一个文件夹中有多个文件由不同的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.phpplugin.c.php

由于

2 个答案:

答案 0 :(得分:2)

查看--git-dir, --work-tree, GIT_DIR and GIT_WORK_TREE 您应该能够在其他位置创建存储库,并将其工作目录设置为正常路径。只需将一个文件添加到第二个存储库即可。

答案 1 :(得分:2)

请参阅@tanascius的回答,其中提供了在一个目录中使用多个git回购的正确答案。

我正在回答我自己的问题:问题的例子和GitHub。因为有一个小警告...

pluginb& plugincplugins文件夹中包含相同的命名文件。虽然这不太可能,但作为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