2011-11-14 19 views
55

Tengo un alijo guardado para el futuro que quiero dar un nombre significativo. Si bien es posible pasar un mensaje como argumento al git stash save, ¿hay alguna forma de agregar un mensaje a un alijo existente?Cambiar mensaje de ocultación de Git

+0

Reconozco que esta pregunta es anterior al duplicado marcado, pero esa pregunta tiene mejores respuestas. – Michael

Respuesta

45

Puede editar directamente los mensajes almacenados en .git/logs/refs/stash.

Sé que probablemente no sea lo ideal, pero debería funcionar de todos modos.

+5

El hecho de que eso funcione es increíblemente afortunado: el mensaje también se almacena en el mensaje de confirmación (las reservas se representan internamente como confirmaciones) y, por supuesto, no cambia ese. – Cascabel

+0

Funciona; muchas gracias – CharlesB

+2

Esto realmente no cambia el mensaje de confirmación (ver 'git show stash' o' git log --all'), solo la entrada en el reflog de ocultación. – Zaz

15

No sin estallar y guardar de nuevo.

+2

aunque aparentemente poco elegante esta es la solución más fácil – Kirby

+1

No es tan simple si sus depósitos están en varias ramas ya que "abrir y guardar de nuevo" aplicaría la confirmación almacenada a la rama actual (que podría fallar en la fusión). Si te encuentras con una larga lista de fajas, probablemente necesites hacer un mejor uso de las ramificaciones. – i3ensays

+1

al principio pensé que decía "No sin caca" –

11

(Ampliando en la respuesta de manojlds.) Lo más simple para adjuntar un mensaje es de hecho para desmantelar y volver a esconder con un mensaje, hay un comando git stash branch que lo ayudará a hacer esto.

git stash branch tmp-add-stash-message 
git stash save "Your stash message" 

El único inconveniente es que este alijo ahora parece que se origina de la rama tmp-add-stash-message. Luego, puede verificar otra sucursal y eliminar esta sucursal temporal.

Por supuesto, esto supone que su copia de trabajo está limpia, de lo contrario se puede esconder los cambios actuales :-)

+0

esta respuesta es en realidad la correcta – woohoo

1

He aquí algunos comandos para ayudar a que el pop y guardar de nuevo como @manojlds sugiere:

git stash #save what you have uncommitted to [email protected]{0} 
git stash pop [email protected]{1} #or another <stash> you want to change the message on 
# only if necessary, fix up any conflicts, git reset, and git stash drop [email protected]{1} 
git stash save "new message" 
git pop [email protected]{1} #get back to where you were if you had uncommitted changes to begin with 
9

Sí, hay una manera, puede probar esto:

git stash store -m "your descriptive message here" [email protected]{1}

Esto creará un nuevo Stash llamado [email protected]{0} con el mensaje anterior.
Este Stash es igual que [email protected]{1}.

Entonces se puede quitar el viejo escondite @ {1} anterior con:

git stash drop [email protected]{2} # @ del alijo {1} se ha convertido en escondite @ {2} como un nuevo alijo ha sido creado.

NOTA: no se puede hacer esto con stash @ {0}: git stash store -m "message here" [email protected]{0} no hará nada.

+1

¿Por qué no funciona con 'stash {0}'? – CharlesB

+0

En realidad, no sé, lo intenté y no funcionó.Así que supongo que: Si esto llama a stash @ {1}, trae una copia de stash @ {1} a la parte superior de la pila, por lo que cuando el usuario llama 'git stash apply', obtiene un resultado diferente. Si esto llama a stash @ {0}, luego la llamada a 'git stash apply' produce el mismo resultado. –

+0

hay 'guardado git guardar' su mensaje "' – woohoo

Cuestiones relacionadas