Pregunta

Me gustaría crear un acuerdo de recompra que tira de un acuerdo de recompra a distancia.

Por ejemplo, digamos que jQuery como un submódulo:

git://github.com/jquery/jquery.git

¿Cuál sería el proceso de creación de un acuerdo de recompra con jQuery como un sub-módulo y la adición de mi propio externa como un acuerdo de recompra a distancia.

También una vez que este ha sido configurado, si push / pull a mi propio control remoto, se lo externo permanecen intactos?

¿Fue útil?

Solución

  1. Usted tiene un proyecto - llamarlo MyWebApp que ya tiene un github repo
  2. Usted desea utilizar el jQuery repositorio en su proyecto
  3. ¿Quieres tirar de la cesión temporal de jQuery en su proyecto como un submódulo .

Los submódulos son muy, muy fácil de referencia y su uso. Suponiendo que ya tienen MyWebApp configurado como un acuerdo de recompra, de la edición terminal de estos comandos:

cd MyWebApp
git submodule add git://github.com/jquery/jquery.git externals/jquery

Esto creará un directorio llamado externals/jquery * y vincularlo con el repositorio GitHub jQuery. Ahora sólo tenemos que inicializar el submódulo y clonar el código para él:

git submodule update --init --recursive

Ahora debe tener toda la última versión del código clonado en el submódulo. Si los cambios de pase jQuery y que quieren sacar el último código de abajo, simplemente ejecute el comando submodule update nuevo. Por favor nota:. Me suelen tener una serie de repositorios externos en mis proyectos, por lo que siempre grupo de los repositorios bajo un directorio "externos"

La línea Pro Git libro tiene alguna información bien en submódulos (y git en general) presenta en una forma fácil de leer. Alternativamente, git help submodule también dará buena información. O echar un vistazo a la Git submódulo Tutorial en el GIT wiki.

Me di cuenta de esta entrada del blog que habla de submódulos y los compara con svn de Subversion: mecanismo externo: http://speirs.org/blog/2009/5/11/understanding-git-submodules.html

* Como práctica, siempre se debe colocar sus submódulos en su propio directorio, como lo externo. Si no lo hace, el directorio raíz del proyecto puede llegar a ser muy desordenado muy rápido.

Otros consejos

La mayor parte de lo que necesita saber ya ha sido contestada, por lo que no me molestaré direccionamiento que, sin embargo, he encontrado una pequeña pieza de información que generalmente faltan.

Como se sabe, "git pull" no actualizar los submódulos, y "git submódulos actualización" no va a descargar la última cabecera de los submódulos tampoco.

Para actualizar todos los submódulos de su última revisión aguas arriba, se puede utilizar

git submodule foreach git pull

Si a menudo alterar sus submódulos, y tienen un montón de, a continuación, "git foreach" se convertirá en un valor incalculable.

Al final me encontré http://github.com/evilchelu/braid parecía encajar con la forma en que esperaba submódulos y mandos a distancia para el trabajo

Creo que la respuesta @Hugo podría ser lo que necesita y funciona bien. Así que he encontrado una manera más fácil.

git submodule update --remote

Eso es todo.

Así que un flujo de trabajo completo podría ser:

git clone project-with-submodules
git submodule init
git config -l
git submodule update --remote
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top