2010-03-11 8 views
3

Je voudrais avoir plusieurs fichiers dans un dossier avec sont gérés par différents dépôts git. C'est possible?Est-ce qu'un dépôt git doit toujours être dans son propre répertoire

J'ai la structure de dossiers suivante pour un projet. Il fait partie d'un dépôt Git:

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

Je voudrais plugin.b.php à faire partie d'un autre repo. Par exemple, je veux que le développement de ce plugin soit hébergé sur github. Utiliser et développer simultanément sur différents projets.

Lorsque j'utilise un git sous-module pour plugin.b.php, je besoin d'un dossier vide pour initialiser le sous-module, j'ai donc une structure:

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

plugin.b.php ne se charge pas, par exemple, mon App ne charge que les fichiers de la racine de plugins/. Et, je ne veux pas avoir à modifier l'application.

Y a-t-il un moyen de le faire? Je peux penser à beaucoup de situations où je voudrais utiliser un flux de travail similaire. Même ayant à la fois plugin.b.php et plugin.c.php dans différents repos.

Merci

Répondre

2

Jetez un oeil à --git-dir, --work-tree, GIT_DIR and GIT_WORK_TREE.
Vous devriez être capable de créer un référentiel à un autre endroit et de définir son répertoire de travail sur votre chemin normal. Ajoutez simplement le fichier au second référentiel.

+0

ce serait parfait. loin de regarder dans ... – Ross

+0

@tanascius merci. Marqué votre réponse correcte. Utilisé une solution différente, posté ci-dessous. – Ross

2

Voir la réponse @tanascius qui fournit la réponse correcte à l'utilisation de plusieurs repos git dans un répertoire.

Je réponds de manière tentative à ma propre question par rapport à: l'exemple de la question et GitHub. Comme il y a une petite mise en garde ...

Il est impossible pour pluginb & pluginc pour avoir les mêmes fichiers nommés dans le dossier plugins. Bien que cela soit peu probable, en tant que repos github, ils ont tous les deux des fichiers README github provoquant un conflit.

Ce fichier compte faible situation que je l'ai réglé pour utiliser un lien symbolique (et garder les prises en pension à l'intérieur du repo principal qui est facultatif):

.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 
Questions connexes