2010-10-05 27 views
49

Estoy tratando de obtener solo una carpeta de un repositorio de github externo para usar en mi proyecto.¿Cómo clonar solo una carpeta de un submódulo git?

quiero configurar mi proyecto sea así:

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

Y tengo el repositorio remoto llamado alguna-submódulo con la siguiente estructura:

-submodule 
    -code.py 
-README 
-.gitignore 

así que sólo quiero la carpeta submódulo añadió a mi proyecto

Pero termino con esto después de

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

-my_project 
    -submodule 
     -submodule 
      -code.py 
     -README 
     -.gitignore 
    -MY_README 
    -.gitignore 

Soy nuevo en el GIT, así que realmente no sé si es posible utilizando sólo git. Si es de alguna ayuda, estoy usando msysgit en Windows.

Entonces, ¿hay alguna forma de que pueda obtener una carpeta de submódulo limpia en mi proyecto de un repositorio público?

Si tiene curiosidad de saber exactamente lo que estoy tratando de hacer, estoy tratando de tomar directamente de sus repositorios estos plugins de django 12 para agregarlos a mi proyecto.

+1

duplicado exacto de [¿Cómo puedo agregar una carpeta específica de un repositorio git como un submódulo git?] (Http://stackoverflow.com/questions/3158597/how-can- i-add-a-specific-folder-from-a-git-repo-as-a-git-submodule) –

Respuesta

15

Lo que quiere hacer no es posible porque no puede clonar una parte de un repositorio.

ver detalles en duplicado How to change a git submodule to point to a subfolder?

+1

Si bien, estrictamente hablando, _cloning_ solo partes de un repositorio no son posibles, ** ** checkout disperso ** desde Git 1.7 para resolver lo que el OP probablemente desee. Ver https://stackoverflow.com/questions/600079/how-do-i-clone-a-subdirectory-only-of-a-git-repository – Peterino

5

Si:

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

directamente bajo my_project, que debe terminar con la organización deseada de directorios.

De git submodule add man page:

El argumento opcional <path> es la ubicación relativa para el submódulo clonado a existir en el SuperProject.
Si no se proporciona <path>, se utiliza la parte "humanitaria" del repositorio fuente ("repo" para "/path/to/repo.git" y "foo" para "host.xz:foo/.git").

+0

¡Impresionante! Estaba siguiendo los tutoriales todo el camino y no leí el manual ... Pensé que terminaría con el archivo README del submódulo en mi propio proyecto ... ¡Muchas gracias! – demula

+1

Aunque hay un problema ... solo funciona si el repositorio del submódulo tiene el mismo nombre que la carpeta que quiero usar, pero si no es así: repo-> django-submódulo carpeta nombre-> submódulo ya no funciona . Veamos si encuentro alguna solución – demula

+0

Lo siento, probé su solución con uno de los repos que estaba bien estructurado y pensé que el problema ya estaba resuelto ... mi mal. – demula

Cuestiones relacionadas