Muchas veces a la hora de trabajar con Git en proyectos que requieren que pongas atención a múltiples ramas del mismo desarrollo nos encontramos con este problema: tenemos cierto avance que nos dolería perder si no guardamos los cambios y nos moviéramos a otra rama. Esto podría resolverse haciendo un ya conocido commit y seguir con nuestra vida.
Ahora pongamos atención a un segundo caso de uso: imagina que todo este código lo quieres mover a otra rama por alguna razón o simplemente no quieres hacer el commit.
Para esto traigo una solución muy sencilla que nos brindará una vida más plena y productiva.
Git Stash
Nosotros podemos esconder código y movilizarlo a donde nos dé la gana y es muy fácil gracias a “stash”.
Código :
git status
En este caso he hecho modificaciones en base_landing.html y estoy en la rama “master”. El cambio no está completo y quiero cambiar de rama para hacer otra modificación en, por ejemplo, “newLanding”.
Código :
git checkout newLanding
Ok… no puedo cambiar de rama si no hago un commit antes en master… o... hago un stash
Código :
git stash
¡Listo! git ha creado una rama virtual que podremos usar en cualquier momento y por supuesto ahora nos podemos mover a “newLanding”.
Estando en “newlanding” podemos hacer todo el trabajo que necesitemos para luego volver a "master" y seguir.
Y ahora, claro, lo más importante: aplicar los cambios para seguir nuestra vida en master.
Código :
git stash apply
¡Y listo! es así como volvemos a nuestro trabajo que habíamos dejado aplazado.
Si quieres saber más sobre stashy sus posibilidades puedes revisar Git Tools Stashing
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por @agusl88 el 20 de Febrero de 2014
Por andrewvergel el 21 de Febrero de 2014
Por wiccano112 el 22 de Febrero de 2014