Me gustaría crear un repositorio que extraiga un repositorio remoto.
Por ejemplo, digamos jQuery como un submódulo:
git://github.com/jquery/jquery.git
¿Cuál sería el proceso de crear un repositorio con jQuery como submódulo y agregar mi propio repositorio externo como un repositorio remoto?
Además, una vez que se configura, si presiono / tiro a mi propio control remoto, ¿permanecerá intacto el externo?
Respuestas:
Los submódulos son muy, muy fáciles de referenciar y usar. Suponiendo que ya tiene MyWebApp configurado como repositorio, desde el terminal emita estos comandos:
Esto creará un directorio llamado
externals/jquery
* y lo vinculará al repositorio github jquery. Ahora solo necesitamos iniciar el submódulo y clonarle el código:Ahora debería tener todo el código más reciente clonado en el submódulo. Si el repositorio de jquery cambia y desea extraer el último código, simplemente ejecute el
submodule update
comando nuevamente. Tenga en cuenta: Normalmente tengo una serie de repositorios externos en mis proyectos, por lo que siempre los agrupo en un directorio "externo".El Pro Git Book en línea tiene buena información sobre submódulos (y git en general) presentados de una manera fácil de leer. Alternativamente,
git help submodule
también dará buena información. O echa un vistazo al Tutorial de submódulos de Git en el wiki de git.Noté esta entrada de blog que habla sobre submódulos y los compara con svn: mecanismo externo de Subversion: http://speirs.org/blog/2009/5/11/understanding-git-submodules.html
* Como práctica recomendada, siempre debe colocar sus submódulos en su propio directorio, como Externals. Si no lo hace, su directorio de proyecto raíz puede estar muy desordenado muy rápido.
fuente
git submodule add
ygit submodule update
... No estoy seguro de lo fácil que podría ser.La mayoría de lo que necesita saber ya ha sido respondido, por lo que no me molestaré en abordarlo, sin embargo, he encontrado una pequeña información que generalmente falta.
Como sabe, "git pull" no actualizará los submódulos, y "actualización de submódulos git" tampoco descargará el último HEAD de esos submódulos.
Para actualizar todos sus submódulos a su última revisión ascendente, puede usar
Si a menudo modifica sus submódulos y tiene muchos, entonces "git foreach" será invaluable.
fuente
Al final encontré http://github.com/evilchelu/braid que parecía encajar con cómo esperaba que funcionaran los submódulos y controles remotos.
fuente
Creo que la respuesta @Hugo podría ser lo que necesita y funciona bien. Así que he encontrado una manera más fácil.
Eso es todo.
Entonces, un flujo de trabajo completo podría ser:
fuente