Guardar trabajo en curso en un Stash con Git

Git nos permite guardar en memoria los cambios sobre los que estamos trabajando en una rama sin necesidad de incluirlos en el área de trabajo del staging area y esto lo podemos hacer mediante el comando git stash que equivaldría a un git stash push.

Guardar cambios en un stash

				
					git stash
				
			

Un stash es algo similar a un borrador, se trata de una forma rápida o sucia de preservar cambios en un espacio provisional de forma local con los que posteriormente podremos seguir trabajando.

Podemos tener varios borradores de nuestros cambios que podemos listar con el comando git stash list.

Listar stashes creados

				
					git stash list
				
			

También podemos guardar un stash incluyendo un mensaje y poder diferenciarlo en el caso de que tengamos varios elementos en la lista de stashes.

Diferenciar stash con mensaje descriptivo

				
					git stash save "mensaje descriptivo"
				
			

Para recuperar cambios de un stash tenemos varias opciones.

Recuperar cambios de un stash

Si lo que queremos es recuperar los últimos cambios desde el stash utilizaremos el siguiente comando:

				
					git stash pop
				
			

O también podemos utilizar el siguiente comando:

				
					git stash apply
				
			

Con ambos comandos podemos recuperar cambios de un stash específico.

				
					git stash pop stash@{<indice_stash>}
				
			
				
					git stash apply stash@{<indice_stash>}
				
			

Mostrar diferencias en un stash

Podemos ver las diferencias de un stash de forma resumida mediante el comando:

				
					git stash show
				
			

O utilizar la opción -p (o –patch) para ver todas las diferencias de un stash:

				
					git stash show -p
				
			

Al recuperar cambios de un stash éste no se elimina automáticamente por lo que es recomendable hacerlo de forma manual.

Para eliminar cambios tenemos varias opciones.

Eliminar cambios recientes

				
					git stash drop
				
			

También podemos hacerlo especificando el índice de un stash en concreto.

				
					git stash drop stash@{<indice_stash>}
				
			

Eliminar todos los cambios

				
					git stash clear
				
			
Facebook
Twitter
LinkedIn

Nuevas/ publicaciones

Nuevas/ publicaciones