erknrio of Programming Guanches
8/19/2016 - 12:57 PM

Merge y rebase. Rebase de forma segura. No emplear si la rama está siendo utilizada por varios desarrolladores.

Merge y rebase. Rebase de forma segura. No emplear si la rama está siendo utilizada por varios desarrolladores.

Introducción

Realizamos un rebase de una rama diferente a master.

Preparación

Nos movemos a nuestra rama en la que desarrollamos las nuevas características.

git checkout feature

Creamos una nueva rama para evitar problemas con los posibles conflictos

git checkout -b temporary-branch

Pasamos los cambios de master a la nueva rama temporal con un rebase interactivo. De esta forma podremos rehacer los commits, cambiar sus mensajes, unirlos con squash, etc.

Así limpiamos el historial.

git rebase -i master

Una vez arreglados los comflictos y si todo ha ido bien nos pasamos a master y hacemos un merge de la rama temporal.

Recordemos que si la rama a la que queremos hacer el rebase es usada por varias personas es mejor emplear merge, es más seguro y deja una prueba de que se realizó dicho merge).

git checkout master
git merge temporary-branch

Eliminamos rama temporal y rama de funcionalidad en local (si es necesario).

git branch -d temporary-branch
# Solo si es necesario
git branch -d feature

Eliminamos la rama feature si estaba pusheada en remoto.

git push origin --delete feature