Git stash parece hacer mucho de lo que quiero, excepto que es un poco difícil de escribir, ya que si no tiene cambios, git stash; git stash pop
hará algo diferente que si tiene cambios en su repositorio.
Parece que esa git stash create
es la respuesta a ese problema, y todo funciona, excepto por una cosa ... No puedo deshacerme del alijo creado. ¿Hay alguna forma de deshacerse del alijo?
Para que quede 100% claro lo que estoy haciendo:
Crea el alijo:
~/tmp/a(master) $ git stash create
60629375d0eb12348f9d31933dd348ad0f038435
~/tmp/a(master) $ git st
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: b
#
~/tmp/a(master) $ git reset --hard
HEAD is now at 555d572 log message
Usa el alijo:
~/tmp/a(master) $ git apply 60629375d0eb12348f9d31933dd348ad0f038435
fatal: can't open patch '60629375d0eb12348f9d31933dd348ad0f038435': No such file or directory
~/tmp/a(master) $ git stash apply 60629375d0eb12348f9d31933dd348ad0f038435
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: b
#
Eliminar el alijo: (excepto que este último bit no funciona)
~/tmp/a(master) $ git stash drop !$
git stash drop 60629375d0eb12348f9d31933dd348ad0f038435
'60629375d0eb12348f9d31933dd348ad0f038435' is not a stash reference
git stash apply
funcionó. Los git apply
intentos de leer un archivo de parche local, que no existe. Para ser sincero, probablemente no debería estar allí, y nunca podría haber funcionado. Estoy vagamente tentado a eliminarlo de la pregunta, pero dado que ha ayudado a tantos en su forma actual, lo dejaré como está.
git apply
ejecución en el segundo cuadro de código en el momento de escribir esto no aplicó un parche; el mensaje de error en la salida le dijo esto. Entonces, de hecho, trataste de crear un alijo (que no funcionó, mira los comentarios a continuación) aplica un alijo que no se creó y luego dejaste un alijo que no se creó. Por eso nada de lo que hiciste funcionó.