En Magit, ¿cuál es la diferencia entre un 'alijo' y una 'instantánea'?

17

El manual de usuario de Magit incluye dos conjuntos de comandos de "escondite": los comandos en minúscula guardan un escondite y los comandos en mayúscula guardan una instantánea . Después de consultar Google y Stack Overflow y la git-stash(1)página de manual, todavía no sé cuál es la diferencia.

¿Cual es la diferencia?

Norman Ramsey
fuente
1
Tengo entendido que stashtambién restablecerá (deshacerá) los cambios y snapshotlos dejará en el espacio de trabajo (podría ser útil si va a reorganizar las confirmaciones antes de presionar).
wvxvw

Respuestas:

24

Las variantes "alijo" y "instantánea" crean los mismos objetos de alijo. La diferencia es que cuando crea una instantánea, los cambios escondidos no se eliminan de los archivos en el árbol de trabajo y / o el índice. (Al igual que cuando tomas una foto de tus amigos pasándola bien, eso tampoco hace que desaparezcan ;-)

Esto está pensado como una especie de mecanismo de respaldo. Supongamos que está realizando una refactorización complicada y que acaba de probar y el código modificado todavía parece funcionar, pero aún no ha terminado. Ahora sería un buen momento para crear una instantánea, de modo que tenga algo a lo que volver si la desordena más tarde.

Por supuesto, puede crear una confirmación temporal "wip", directamente en la rama en la que está trabajando, para lograr lo mismo. Eso suele ser lo que hago.

Y también puede automatizar el proceso de grabación del trabajo en progreso habilitando los modos Wip . Tengo estos modos habilitados como una red de seguridad, pero sigo creando confirmaciones de wip directamente en la rama actual o creo una instantánea. Es más fácil trabajar con ellos que con los wip refs.

Tenga en cuenta que Magit viene con su propia implementación de alijo escrita en Elisp. Eso fue necesario para implementar las variantes de instantáneas y las variantes de alijo solo de árbol de trabajo e índice. Git no proporciona ninguna de estas variantes.

tarsius
fuente