Git Rebase
- Una utilidad que es recomendada solo en entorno local, utilizarla en el servidor remoto es una mala práctica de trabajo
- Esta utilidad nos permitirá unir branches para hacer de cuenta que una de las branches nunca existió, y de esta forma, integrar los commits y todas las acciones realizadas en una sola branch
- Como buena práctica de trabajo, primero se realiza el rebase en la branch que queremos que deje de existir y no deje rastro alguno, con la branch principal que va a guardar todo el historial
git rebase <rama principal>
- Realizamos de nuevo rebase en la otra rama principal, para de esta forma, integrar ambas ramas
git rebase <rama a eliminar>
- Es posible que se generen conflictos al momento de realizar estos rebase, por lo cual, el rebase se pone en un estado de suspensión. Luego de solucionar estos conflictos, para continuar el rebase utilizamos
git rebase —continue
Git Stash
- Utilidad para guardar cambios para después, sin realizar un commit de forma oficial
- Es una lista de estados que guarda los últimos cambios que hicimos en Staging
- La gran utilidad de esto, es poder cambiar de branches sin tener que guardar oficialmente los cambios y de esta forma no perder ese progreso obtenido
- El stash nos permite cambiar de ramas, hacer cambios, trabajar en otras cosas y luego retomar el trabajo con los archivos en Staging
- Para agregar un cambio a stash simplemente utilizamos
git stash
- Podemos agregar un mensaje al stash
git stash save "mensaje identificador”
, para cuando realizamos git stash list
que lista todos los stash, podamos identificarlos de una mejor forma
- Para obtener un elemento de stash, utilizamos el método pop (último en entrar, primero en salir), y lo insertará en Staging area, por lo cual, debemos estar en la branch adecuada, al recuperar el stash, este volverá correctamente en la branch donde se guardó, por lo cual, estar pendiente de esto para evitar conflictos
git stash pop
- Con
git stash branch <nombre de rama>
podemos crear una rama nueva a partir del stash realizado, para de esta forma, trabajar de forma aislada con este cambio
- Cada stash nuevo que ingresa, se le asigna la posición 0 (
git stash list
), para eliminar el último stash usamos git stash drop
. Si deseamos eliminar todos los stash git stash clear
- Para todos los casos anteriores, las acciones se realizan por defecto sobre la posición 0, que es la posición asignada la último stash que ingresa. Si deseamos aplicar eso a un stash en especifico, debemos utilizar el índice o ID
stash@{<num_stash>}
que aparece en git stash list
Git Clean
- Podemos limpiar nuestra carpeta de trabajo de archivos innecesarios, con
git clean
podemos eliminar directamente los archivos que no están siendo trackeados, para de esta forma evitar que sean agregados
- Para tener seguridad de lo que se va a realizar, podemos verificar que archivos se eliminarían como simulación con
git clean —dry-run