web-dev-qa-db-fra.com

Comment cloner uniquement un dossier à partir d'un sous-module git?

J'essaie d'obtenir juste un dossier d'un dépôt github externe à utiliser dans mon projet.

Je veux que la configuration de mon projet soit comme ceci:

-my_project
    -submodule
        -code.py
    -MY_README
    -.git

Et j'ai le référentiel distant nommé some-submodule avec la structure suivante:

-submodule
    -code.py
-README
-.gitignore

Je veux donc simplement que le dossier du sous-module soit ajouté à mon projet.

Mais je me retrouve avec ça après

sous-module git ajouter  http://github.com/user/submodule.git  sous-module
-my_project
    -submodule
        -submodule
            -code.py
        -README
        -.gitignore
    -MY_README
    -.gitignore

Je suis nouveau sur git donc je ne sais vraiment pas si c'est possible en utilisant juste git. Si cela peut vous aider, j'utilise msysgit sur Windows.

Alors, existe-t-il de toute façon que je peux obtenir un dossier de sous-module propre dans mon projet à partir d'un référentiel public?

Si vous êtes curieux de savoir exactement ce que j'essaie de faire, j'essaye de prendre directement de leurs repos ces Django plugins 12 pour les ajouter à mon projet.

66
demula

Ce que vous voulez faire n'est pas possible car vous ne pouvez pas cloner une partie d'un référentiel.

Voir les détails en double Comment changer un sous-module git pour pointer vers un sous-dossier?

25
dregad

Si vous:

git submodule add http://github.com/user/submodule.git

directement sous my_project, vous devez vous retrouver avec l'organisation souhaitée des répertoires.

De git submodule add page de manuel :

L'argument facultatif <path> est l'emplacement relatif pour que le sous-module cloné existe dans le superprojet.
Si <path> n'est pas donné, la partie "humaniste" du dépôt source est utilisée ("repo" pour "/path/to/repo.git "et" foo "pour" Host.xz:foo/.git ").

8
VonC

juste

git submodule update --init --recursive

dans le répertoire racine de votre projet et il devrait faire ce que vous voulez

3
Immanuel