2010-03-11 62 views
3

我想有一個文件夾中的多個文件,由不同的git存儲庫管理。可能嗎?git回購總是必須在自己的目錄

我有一個項目的以下文件夾結構。這是一個Git倉庫的一部分:

plugins/ 
- plugin.a.php 
- plugin.b.php 
- plugin.c.php 

我想plugin.b.php是另一個回購的一部分。例如,我想要將這個插件的開發託管在github上。在不同的項目上同時使用和開發。

當我使用一個git子模塊plugin.b.php,我需要一個空文件夾,以初始化子模塊,所以我有一個結構:

plugins/ 
- plugin.a.php 
newfolder/ 
    - plugin.b.php 
- plugin.c.php 

plugin.b.php將不加載,例如,我的應用程序僅加載plugins/的根文件。而且,我不想修改應用程序。

有沒有辦法做到這一點?我可以想到很多情況下我想使用類似的工作流程。即使同時有plugin.b.phpplugin.c.php在不同的回購協議。

感謝

回答

2

看一看--git-dir, --work-tree, GIT_DIR and GIT_WORK_TREE
您應該可以在其他地方創建存儲庫並將其工作目錄設置爲正常路徑。只需將一個文件添加到第二個存儲庫即可。

+0

這將是完美的。去看看它... – Ross 2010-03-11 12:30:38

+0

@tanascius謝謝。標明你的答案是正確的。使用了不同的解決方案,貼在下面。 – Ross 2010-03-11 14:49:00

2

請參閱@tanascius的答案,它提供了在一個目錄中使用多個git repos的正確答案。

我正在回答我自己的問題:問題的例子和GitHub。由於有一個小警告...

這是不可能的pluginb & pluginc有在plugins文件夾同名的文件。儘管這不太可能,但作爲github回購,他們都有github自述文件導致conflit。

對於這個低文件數情況我已經解決了使用符號鏈接(並保持主要回購這是可選的內部回購):

.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 
相關問題