Solución:
La respuesta simple, hay muchas más complicadas, es simplemente hacer una fusión, entonces:
git checkout master
git pull
git checkout <your-branch>
git merge master
(Esto es efectivamente lo mismo que describe en la opción 2)
Dependiendo de su configuración, es posible que no necesite todos esos pasos (pero hacerlos todos no le hará daño). Recomiendo leer cada uno de los comandos para encontrar el flujo de trabajo preciso que mejor se adapte a sus necesidades.
Esto fusionará los cambios de master en su rama y probablemente creará una nueva confirmación, con un comentario que dejará en claro que es una fusión.
La alternativa, y una opción un poco más avanzada, sería rebase
, en lugar de merge
, que efectivamente rebobinará el tiempo hasta el punto en que su rama divergió de la maestra, luego incorporará los cambios en la maestra, alineando su rama con la maestra, pero sin sus confirmaciones, y finalmente aplicará sus confirmaciones al final. La ventaja de esto es que mantiene el historial más simple: solo obtiene una línea recta de cambios, con los cambios de su rama justo al final, en lugar de dos ramas separadas que se unen en el punto de fusión.
Para hacer eso, harías:
git checkout <your-branch>
git rebase master
Recomendaría leer los documentos sobre rebase, porque hay muchos casos en los que se vuelve difícil, y si eres nuevo en git, definitivamente opta por la fusión, pero vuelve a rebase cuando tengas más confianza. característica poderosa, y más como lo que creo que estás describiendo en tu opción 1.
Si tu remote
está configurado en el valor predeterminado origin
, (puede verificarlo usando git remote -v
), podrías hacer:
git merge origin master
Cuando estás en tu sucursal actual git merge master