Git permite que múltiples usuarios trabajen en el mismo proyecto simultáneamente. Supongamos que un desarrollador está trabajando en una función en una rama y necesita extraer cambios de la rama de otro desarrollador o si tiene que trabajar urgentemente en otra función, pero la función en la que está trabajando actualmente está incompleta. En este caso, no puede confirmar el código parcial de la característica que funciona actualmente. Para agregar esta nueva función, debe eliminar los cambios actuales y almacenarlos en otro lugar. Para este tipo de situaciones, Git ofrece un comando muy útil conocido como ‘ git stash
‘.git stash
El comando guarda el código escrito previamente y luego vuelve a la última confirmación para un nuevo comienzo. Ahora puede agregar la nueva función sin molestar a la anterior, ya que se guarda localmente. Después de confirmar la nueva característica, puede continuar trabajando en la característica anterior que estaba incompleta y no confirmada.
Guardar los cambios actuales
Para guardar los cambios no confirmados para su uso posterior, puede usar el comando ‘ git stash
‘ . Este comando guarda sus modificaciones locales y revierte el directorio de trabajo para que coincida con la confirmación HEAD, por lo que le dará un directorio de trabajo limpio.
git stash
By default, running git stash
will stash the changes that have been added to your index (staged changes) and changes made to files that are currently tracked by Git (unstaged changes). To stash your untracked files, use git stash -u
.
Listado de múltiples alijos
Puede crear varios alijos y verlos con el comando ‘ git stash list
‘ . Cada entrada oculta se enumera con su nombre (p. ej., stash@{1} ), el nombre de la rama que estaba vigente cuando se realizó la entrada y una breve descripción de la confirmación en la que se basó la entrada.
git stash list
To provide more context to the stash we create the stash using the following command:
git stash save "message"
Recuperar los cambios guardados
Puede volver a aplicar los cambios guardados previamente con el comando ‘ git stash pop
‘ o ‘ git stash apply
‘ . La única diferencia entre ambos comandos es que ‘ git stash pop
‘ elimina los cambios del alijo y vuelve a aplicar los cambios en la copia de trabajo, mientras que ‘ git stash apply
‘ solo vuelve a aplicar los cambios en la copia de trabajo sin eliminar los cambios del alijo. En palabras simples, «pop» elimina el estado de la lista de reserva, mientras que «aplicar» no elimina el estado de la lista de reserva.
git stash pop
git stash apply
By default ‘git stash pop
‘ or ‘git stash apply
‘ will reapply the most recently created stash: stash@{0}
To choose which stash to apply, you can pass the identifier as the last argument (For eg.:- git stash pop stash@{2}).
Visualización del resumen de alijo
git stash show
El comando se utiliza para mostrar el resumen de las operaciones realizadas en el alijo.
git stash show
Creación de una sucursal desde el alijo
Si desea crear y verificar una nueva rama a partir de la confirmación en la que se creó originalmente el alijo y también aplicar los cambios guardados en el alijo, use ‘ git stash branch branch_name stash_name
‘ . Elimina el alijo que se proporciona como argumento y, si no se proporciona ningún alijo, elimina el último.
git stash branch newbranch stash@{0}
Eliminación de alijos
Para eliminar cualquier alijo en particular ( por ejemplo: – alijo@{1}), use ‘ git stash drop stash@{1}
‘ . De forma predeterminada, este comando eliminará stash@{0} si no se proporciona ningún argumento ( git stash drop
).
Para eliminar todos los alijos a la vez, use el comando ‘ git stash clear
‘ .