2012-04-28 23 views
40

¿Voy a tener problemas si hago clonar un repositorio en un repositorio git existente?Git Clone en otro Git Repo existente

En aras de la simplificación, estoy desarrollando una biblioteca "lib /" que debería estar disponible para todos mis proyectos. Este es un repositorio de git separado. Me gustaría importar esta lib/en todos mis proyectos, y actualizarla solo en un lugar, nunca tocarla desde ninguno de los proyectos, solo usarla.

Supongo que esto está bien, solo me pregunto si hay algo de lo que debería tener cuidado. ¡Gracias!

+2

es difícil para mí decir si eso es exactamente lo que estoy buscando ... parece un poco complicado. – botbot

+0

@masterkrang Usted quiere submódulos. :) Al principio son un poco complicados, como el propio git, pero la complejidad lo vale. – Ashe

+0

jaja. bien, ahora lo creo, necesito * submódulos. muchas gracias, Maxpm y @Arlen Cuss. Trataré de enfrentar a esa bestia mañana cuando esté lleno de energía. – botbot

Respuesta

32

Sólo para que conste, se puede clonar un repositorio git dentro de otro:
Todo bajo el directorio lib será ignorado por el encerrando repositorio git, debido a que dicho directorio lib contiene una .git.

por lo que sería trabajar, pero el repositorio que encierra no tendría ni idea:

  • se necesita un directorio lib de otro repo
  • que necesita una específica revisión de ese libpara construir adecuadamente

Esas son precisamente las dos informaciones registradas por padre repo (el adjunto) para r eferencia a submodule.
Está hecho para darle acceso a una revisión fija de otro repositorio dentro de su repositorio, pero como se explica en "Naturaleza verdadera de los submódulos", eso no impide que modifique localmente lib directamente dentro de su repositorio padre.
(Siempre y cuando se comprometan las modificaciones en lib primero, y luego ir a un nivel por encima de vuelta en tu repositorio padre, y comprometerse allí también)

El principal beneficio para cualquier colaborador de su proyecto principal es que, cuando Clonará dicho proyecto, sabrán que también necesitan lib si se declara como un submódulo (como se menciona en "Git Submodule Workflow Advice").

+0

que tiene mucho sentido @VonC. gracias por la información. supuse que podías clonar en un repositorio git existente, pero no estaba seguro de cómo lo trataría.ignorarlo parece elegante y lógico. ejecutar una prueba en un repositorio existente no parecía seguro. probar una versión reducida no parecía lo suficientemente real, así que pensé que buscaría en la comunidad. Lo último que quiero es un repositorio sin fortuna dentro de un repositorio cuando s *** golpea al ventilador. ¡gracias de nuevo! – botbot

+1

esto parece que sería un gran lugar para publicar un ejemplo super simple (o un enlace al ejemplo) de cómo iniciar un repositorio de git y cómo clonar o agregar la suma – botbot

+3

+1 @VonC para responder realmente la pregunta y explicar la sutileza entre la clonación en un repositorio y el uso de un submódulo, que apostaría es la pregunta que muchas personas están formulando. –