Esconder solo el árbol de trabajo (cambios no organizados) en Git es más difícil de lo que debería ser. La respuesta aceptada oculta los cambios no organizados, pero también oculta los cambios organizados (y los deja también organizados), que rara vez es lo que desea.
Este alias funciona bien:
stash-working = "!f() { \
git commit --quiet -m \"temp for stash-working\" && \
git stash push \"$@\" && \
git reset --quiet --soft HEAD~1; }; f"
Confirma los cambios por etapas temporalmente, crea un alijo a partir de los cambios restantes (y permite que argumentos adicionales como --include-untracked
y --message
se pasen como argumentos de alias), y luego restablece la confirmación temporal para recuperar los cambios por etapas.
Es similar a la respuesta de @Simon Knapp , pero con algunas diferencias menores: se utiliza --quiet
en las acciones temporales tomadas y acepta cualquier número de parámetros para el alijo push
, en lugar de codificarlo -m
, y se agrega --soft
al final restablecer para que el índice permanezca como comenzó.
Para el problema opuesto de guardar solo los cambios por etapas (alias stash-index
), vea esta respuesta .
man git stash
es mucho mejor.