Software Development Notions

Git Autostash

September 06, 2020

Problema

Intentas hacer un pull pero tus cambios locales entran en conflicto con los del repo remoto. La solución que usaría sería hacer un stash de mis cambios locales, que sería algo así como dejarlos de lado por el momento, y después hacer el pull. Finalmente incluiríamos los cambios que habíamos dejado de lado.

Existe una forma de automatizar esto, y lo podríamos hacer mediante la configuración de Git, para que cuando hagamos un pull, nos deje de lado nuestros cambios locales y después sea decisión nuestra incluirlos o no después del pull.

Proceso

Lo primero es configurar esto en git (también aparece la configuración para lograr lo mismo cuando hagamos rebase)

git config --global pull.rebase true
git config --global rebase.autoStash true

Después vendría el git pull, que nos dirá que nos ha hecho un autostash.

git pull
----------
Created autostash: 094ad5c
HEAD is now at d39c25c repo1 - readme
First, rewinding head to replay your work on top of it...
Fast-forwarded master to 6b6e1d4262fd5bc8d2b974f81222003a6c67fea6.
Applying autostash resulted in conflicts.
Your changes are safe in the stash.
You can run "git stash pop" or "git stash drop" at any time.

Para incluir los cambios del stash podemos realizar un git stash pop

Extra

Podemos listar todos los stash disponibles

git stash list
---------------
stash@{0}: autostash

Y realizar un git stash pop de uno concreto

git stash pop [--index]

Welcome to my blog about Software Development! I would like to invite you to learning with me 👨‍💻

Search all posts