¿Cómo puedo mantener mi sucursal actualizada con master con git?

126

Tengo una corrección de errores en mi maestro, y también quiero que mi rama obtenga esa corrección de errores. ¿Qué gitcomando utilizo?

Nic Hubbard
fuente

Respuestas:

172

Suponiendo que está bien con tomar todos los cambios en master, lo que quiere es:

git checkout <my branch>

para cambiar el árbol de trabajo a su rama; luego:

git merge master

para fusionar todos los cambios en master con los tuyos.

John Doty
fuente
55
Y esto solo agrega los cambios de mi maestro a mi rama, y ​​deja al maestro solo, ¿correcto?
Nic Hubbard
3
@Nic: esto traerá todas las confirmaciones del maestro, no solo la corrección de errores. Asegúrese de si esto es lo que quiere hacer.
manojlds
12
@Nic - Correcto, esto no modifica al maestro.
John Doty
16
Podría ser bueno recomendar un "maestro de pago git inicial; git pull" para garantizar que la sucursal maestra local esté actualizada. Generalmente obvio, pero ...
MikeW
Como acceso directo maestro de extracción / fusión, ¿puede simplemente hacer un "maestro de origen de extracción de git" para extraer el maestro / fusión del servidor en la rama de extracción local?
user1172173
66

Si su sucursal es solo local y no se ha enviado al servidor, use

git rebase master

De lo contrario, use

git merge master
Chetan
fuente
18
Porque modifica el historial de confirmación 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 svnentonces este git rebase masteres el camino a seguir, para mantener un historial lineal, que es lo que svn entiende.
alondono
15

Puede usar la selección de cereza para obtener las confirmaciones particulares de corrección de errores

$ git checkout branch
$ git cherry-pick bugfix
manojlds
fuente
¿La selección de cerezas solo funcionará si la corrección de errores fue una rama que se fusionó de nuevo con el maestro?
Prasith Govin
1
Puede elegir, pero luego de fusionar la rama en maestro (cuando la rama esté lista) tendrá la confirmación de corrección de errores dos veces en la historia.
Gauthier
0

Si solo desea que la corrección de errores se integre en la rama, git cherry-picklas confirmaciones relevantes.

Alan Haggai Alavi
fuente