GIT en el mundo real

Git stash Más videos

Descripción del tema

En algunas ocaciones estamos trabajando en algún branch, pero urgentemente necesitamos cambiarnos de branch para corregir algún problema en producción o para traer los nuevos cambios de remoto. Generalmente no quisiéramos hacer un commit con nuestro trabajo a medias.

Para estos casos git stash nos viene muy bien, ya que este comando nos permite guardar temporalmente nuestros cambios que tenemos en el workspace para más adelante aplicarlos.

Supongamos que tenemos algunos archivos modificados en el workspace, si hacemos un git status veremos cuales son esos archivos.

$ git status
On branch develop
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   app/controller/base_controller.rb
    modified:   app/controller/sales_controller.rb

Para guardar temporalmente estos cambios en el stash, tendríamos que hacer lo siguiente.

$ git stash

Con eso automáticamente todos los archivos modificados serán guardados en el "stash", que básicamente es un almacenamiento temporal que usaremos para cambiarnos de branch y trabajar en otra cosa.

Podemos crear todos los "stash" que necesitemos, luego más adelante podemos aplicarlos a nuestro código nuevamente, si queremos ver el listado de todos los que hemos guardado usamos el siguiente comando.

$ git stash list
stash@{0}: WIP on develop: c57e3f1 Some description here...,

Por el momento solo aparece uno, pero pueden aparecer N cantidad de elementos guardados.

Ahora bien, una vez que nos cambiamos de branch, arreglamos los problemas que surgieron y queremos regresar a donde estábamos trabajando, lo único que necesitamos hacer es aplicar el stash a nuestro workspace. Para eso simplemente ejecutamos el siguiente comando.

$ git stash apply

Git automáticamente aplicará el stash más reciente, como solo tenemos uno no tendremos ningún problema, en caso de tener más podemos indicarle cual aplicar de la siguiente manera.

$ git stash apply stash@{0}

Con eso aplicaremos el stash específico y veremos que nuestro workspace estará exactamente igual como lo dejamos anteriormente.  

$ git status
On branch develop
Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git checkout -- ..." to discard changes in working directory)

    modified:   app/controller/base_controller.rb
    modified:   app/controller/sales_controller.rb

Conclusiones 

Usar el stash es de gran ayuda si no queremos hacer commits con trabajo a medias, es una herramienta perfecta para esos casos donde estamos a la mitad de algo y tenemos que cambiarnos de branch para revisar otra cosa urgente.

Si te ha gustado este tutorial agradeceré que lo compartas en tus redes sociales! Eso me ayudará a continuar subiendo contenido de calidad a este sitio de manera gratuita.

Te gustaría recibir más tutoriales como este en tu correo?

Este tutorial pertenece al curso GIT en el mundo real, te recomiendo revises el resto de los tutoriales ya que están en secuencia de menor a mayor complejidad.

Si deseas recibir más tutoriales como este en tu correo te recomiendo registrarte al curso, si ya eres miembro solo identifícate y registrate al curso, si no eres miembro te puedes registrar gratuitamente!

Si no gustas registrarte en este momento no es necesario! Aún así puedes recibir los nuevos tutoriales en tu correo! Jamás te enviaremos Spam y puedes cancelar tu suscripción en cualquier momento.

¿Olvidaste tu contraseña?

Se el primero en comentar!

Instructor del curso

Crysfel3

Autor: Crysfel Villa

Lleva un par de años utilizando GIT de manera productiva, antes de GIT utilizaba SVN y mucho antes CVS. No se arrepiente de haber cambiado de sistema de versiones.

Regístrate a este curso

Este tutorial pertenece al curso GIT en el mundo real, revisa todos los tutoriales que tenemos en este mismo curso ya que están en secuencia y van de lo más sencillo a lo más complicado.

Ya que este curso no está finalizado al registrarte podrás recibir en tu correo los nuevos tutoriales de este curso!

Tendrás acceso a descargar los videos, códigos y material adicional.

Podrás resolver los ejercicios incluidos en el curso así como los Quizzes.

Llevarás un registro de tu avance.