2009-08-31 7 views
31

Tengo un tenedor de un proyecto en github donde el tronco principal fue etiquetado recientemente. Quiero sacar el código de la revisión etiquetada en mi tenedor. ¿Como podría hacerlo?Git: ¿Cómo realizo una revisión etiquetada en mi fork?

+0

'pull' - as in merge? –

+0

Soy un git novato, así que aún no conozco todos los términos ... Quiero fusionar el código etiquetado del tronco principal en mi tenedor. Si eso es lo que git llama "fusión", entonces sí :) –

+0

Quizás también desee verificar esta pregunta http://stackoverflow.com/questions/881092/how-to-merge-a-specific-commit-in- git – Vanuan

Respuesta

42

Una vez que tenga la etiqueta en el repositorio local que puede hacer algo como

git merge tags/yourtag

Si usted no tiene las etiquetas "troncales" a nivel local, se puede recuperar usando

git fetch remote-url "refs/tags/*:refs/tags/*"

o configurando el mando a distancia

git remote add upstream remote-url

y ir a buscar las cosas usando

git fetch -t upstream

Creo, sin embargo, el uso de

git remote update

tendrá efecto similar.

+1

"Una vez que tienes la etiqueta en el repositorio local" - cómo hago esto (soy realmente un novato git). ¿Cuál es la diferencia entre "git merge" y "git fetch" y "git pull"? –

+1

@Jon: la segunda instrucción aquí obtendrá todas las etiquetas del control remoto. Tenga en cuenta que también puede hacer 'git fetch --tags '. – Cascabel

+2

@Jon: 'git pull' es una combinación de' git fetch' y 'git merge'.Utiliza 'git fetch' para recuperar información (posiciones de bifurcación, commits, etc.) del repositorio remoto, luego usa' git merge' para fusionar la bifurcación remota apropiada en la bifurcación local actual. Puede especificar la bifurcación remota haciendo 'git pull ', o puede especificar tanto el control remoto como la bifurcación predeterminados para fusionar usando la rama 'parámetros de configuración '. .remote' y 'branch. .merge'. – Cascabel

13

me puede proyectar, pero creo que el problema de Jon era el mismo que el mío:

I en forma de horquilla de otra persona proyecto (en GitHub), y necesitaba para señalar la maestro rama de mi tenedor a una específica etiqueta de su proyecto, haciendo caso omiso de todo el desarrollo posterior. (¿Por qué?) Después de esa etiqueta, su proyecto abandonó la funcionalidad de la que depende mi horquilla y debe seguir construyendo. Así que estoy vinculado a ese momento de la historia. Triste pero cierto.

En este ejemplo, la etiqueta se llamaba 0.6.3 . Todo lo que tenía que hacer era cd a mi clon local (de mi tenedor) y hacer

git reset --hard 0.6.3 
git push --force 

Luego verifica en GitHub que mi tenedor refleja el estado del código en su etiqueta!

Cuestiones relacionadas