2012-05-08 34 views
7

Bifurqué un repositorio en GitHub.SmartGit pull no funciona como se esperaba

Luego cloné mi tenedor en una carpeta en mi entorno de desarrollo local a través de SmartGit. Además, agregué el repositorio original como control remoto.

Ahora, el repositorio original ha agregado y modificado algunos archivos. Me gustaría recuperar estos para estar actualizado, antes de continuar con el desarrollo.

I pulse el botón de extracción en SmartGit y seleccione el archivo original en el cuadro de diálogo. vuelve SmartGit esto a mí:

remote: Counting objects: 24, done. 
remote: Total 13 (delta 7), reused 12 (delta 6) 
From github.com:Original/repo 
* [new branch]  master  -> lm/master 

embargo, los archivos añadidos y los cambios no se agregan a mi repositorio local. Haciendo esto manualmente con Git Bash - git pull original master todo funciona como se espera.

¿Por qué SmartGit no funciona como esperaba?

+0

Asumo que está utilizando SmartGit 3.0.x. Al abrir el registro y usar Graph | Select Branch para mostrar "All branches", ¿puede ver los otros commits? ¿Qué muestra Branch | Branch Manager para la rama local "master"? – mstrap

+0

@mstrap Después de tirar, el registro muestra las confirmaciones, pero los cambios no se realizan. El administrador de la sucursal se ve así: http://postimage.org/image/qpp3mgu1x/ – Repox

Respuesta

10

En Tire, SmartGit realizará una "recuperación de git" y después de eso fusionar resp. rebase la rama rastreada . En su caso, master rastrea origin/master, no lm/master. Usted tiene las siguientes opciones ahora, siempre asumiendo que son en master:

(1) Configurar master para rastrear lm/master en lugar de origin/master: invocan Branch | Gerente de Sucursal, seleccione master, invoque Restablecer Branch orugas en el menú contextual , luego agregue lm/master a la selección e invoque Establecer rama rastreado. Ahora, es lm/master que se fusionará (o se volverá a configurar) en cada Tire.

(2) fusionar manualmente lm/master: invocar Branch | Combinar y seleccione lm/master.

(3) rebase manualmente sobre lm/master: invocar Branch|Rebase, seleccione HEAD para seleccionado comete y en el gráfico-página, seleccione lm/master.

+0

Parece bastante SmartGit-detallado. +1 – VonC

3

se podría ver los nuevos archivos si el upstream branch de su sucursal de corriente era "lm/master".
Pero si usted está en master, su rama aguas arriba es, sin duda por defecto "origin/master" (es decir, el master de su tenedor)

Si desea combinar los archivos desde el repositorio original, completar su mandato con un

git merge lm/master 

O, in SmartGit, merge de lm/master a su rama actual.

+1

Esto no responde mi pregunta. El problema no es sacar del Git Bash, sino sacarlo de SmartGit. – Repox

+1

@Repox Claro, he editado la respuesta, pero básicamente lo que quieres hacer es fusionar después de tu extracción de SmartGit. Y SmartGit te permite hacer eso. Mi objetivo era explicar por qué tenía que hacer una operación adicional (ya sea a través de su GUI o el bash) para ver los archivos. – VonC

7

Lo que terminé haciendo en SmartGit fue:

  • Remote > Add (como lo hizo). Llamé al mío upstream.
  • En el panel de sucursales Right click upstream > fetch more.. y seleccione las ramas. (Por lo general, maestro)
  • En el panel de sucursales Double click upstream > master. Esto le pedirá que cree una segunda rama (generalmente master-2). También llamé upstream. Así que tengo un repositorio remoto llamado upstream y una rama local llamada upstream que rastrea upstream/master.
  • En el panel ramas Double click Local Branches > Master para que todo vuelva a su rama principal.

En este punto supongo que hace un momento acabas de abrir el proyecto, así que este siguiente paso no sería muy útil, pero si hay algunos compromisos adicionales en una etapa posterior necesitarás hacer esta.

  • Remote > Pull y seleccione aguas arriba. Si presiona la pequeña flecha hacia abajo, verá que puede SOLAMENTE do "Ni fusionar ni rebase". Esto es bueno.
  • Click fetch Esto le permitirá ver todo el registro y lo que ha cambiado.
  • En el panel de ramificación Right click Local Branches > upstream > Merge.
  • Fast-Forward si cree que puede. (Mi forma preferida).
  • o Create Merge-Commit.

A partir de ahora, sólo tendría que hacer es los últimos 5 pasos. Los primeros pasos fueron solo la configuración.

3

si SmartGit está realizando Fetch en cada una de sus Tire,

continuación, busque la opción de ramas en la barra de menú o ventana ramas de la aplicación .. enter image description here

Entonces

enter image description here

O

enter image description here

Voila ... Disfrute

Cuestiones relacionadas