Skip to content

Instantly share code, notes, and snippets.

@morjuax
Last active December 10, 2020 14:29
Show Gist options
  • Save morjuax/202b8fbad0d0ab627006ee5abd0f42e2 to your computer and use it in GitHub Desktop.
Save morjuax/202b8fbad0d0ab627006ee5abd0f42e2 to your computer and use it in GitHub Desktop.
Rebase Interactivo, para unir commits en 1 solo
En algunos casos cuando nos toca desplegar master y no queremos subir todos commits de tu ramma, nos puede tocar unir commits.
El *git rebase* puede ayudar, Ojo: Se pierde el historial de commits, lo recomendable es hacer esto local y no commits pusheados
Ejemplo tienes 4 commits
e5c49d9 (HEAD -> cambio3) [ADD]
f584ba1 cam3
eed9d9a [ADD] cam333.txt
c427b35 [ADD] cambio 1
Y necesitas unirlos en solo commit
1) git checkout nameBranch => la rama donde necesitas hacer la union
2) git rebase -i HEAD~4 => en este caso se uniran los ultimos 4 commits
3) Despues saldra un editar de Vim o Nano, donde saldra los ultimos 4 commits, con los comandos de lo que se quiere hacer
Commands
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
En este caso se necesita hacer una union con la opcion *squash*
Ejemplo:
pick e5c49d9 [ADD]
squash f584ba1 cam3
squash eed9d9a [ADD] cam333.txt
squash 2124b26 [ADD] cambio 1
En este caso f584ba1, eed9d9a, 2124b26, es decir todos los que tienen el comando squash, se unira a e5c49d9 el que tiene el comando pick
4) Guardar y salir
5) Se borra todo el texto y se coloca el mensaje de commit Unificado
6) Y listo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment