2011-04-17 23 views

Respuesta

129

Suponiendo que estás bien con la toma de todos los cambios en el maestro, lo que quiere decir:

git checkout <my branch> 

para cambiar el directorio de trabajo a su sucursal; luego:

git merge master 

para fusionar todos los cambios en el maestro con los suyos.

+3

Y esto simplemente agrega los cambios de mi maestro a mi rama, y ​​deja el maestro solo, ¿correcto? –

+3

@Nic - Esto traerá todas las confirmaciones del maestro, no solo la corrección de errores. Asegúrese de que esto sea lo que quiere hacer. – manojlds

+8

@Nic - Correcto, esto no modifica el maestro. –

46

Si su rama sólo es local y no se ha introducido en el servidor, utilice

git rebase master 

De lo contrario, utilice

git merge master 
+0

¿por qué la rebase funciona solo cuando se trata de una sucursal local? – Denise

+12

Porque modifica el historial de confirmaciones y no desea enviar el historial de búsqueda modificado al servidor. – Chetan

+1

Si está utilizando un repositorio svn como su repositorio remoto-a través de 'git svn'-entonces el' git rebase master' es el camino a seguir, para mantener un historial lineal, que es lo que svn entiende. – alondono

15

Puede utilizar la cereza-escoge para obtener el error en particular fix comprometerse (s)

$ git checkout branch 
$ git cherry-pick bugfix 
+0

¿funcionará solo si el bugfix fuera una rama que se fusionó de nuevo en el maestro? –

+1

Puede seleccionar con precisión, pero luego de fusionar la rama en maestra (cuando la rama esté lista) tendrá el compromiso de corrección de errores dos veces en el historial. – Gauthier

0

Si lo que desea es la corrección de errores a integrarse en la rama, git cherry-pick los compromisos relevantes.

Cuestiones relacionadas