untracked stash name files git git-stash

name - Se aplica la diferencia entre git stash pop y git stash



git stash push (4)

He estado usando git stash pop desde hace bastante tiempo. Recientemente me enteré del comando git stash apply . Cuando lo probé, parecía funcionar igual que el git stash pop .

¿Cuál es la diferencia entre git stash apply git stash pop y git stash apply ?


Consiguió este enlace útil que establece la diferencia, como John Zwinck ha declarado y un inconveniente de Git Stash Pop.

Por ejemplo, digamos que sus cambios ocultos entran en conflicto con otros cambios que ha realizado desde que creó el alijo. Tanto el pop como la aplicación activarán de forma útil el modo de resolución de conflicto de fusión, lo que le permitirá resolver bien tales conflictos ... y ninguno se librará del alijo, aunque quizás esté esperando que aparezca el pop. Dado que mucha gente espera que los alijos sean solo una pila, a menudo esto lleva a que aparezcan el mismo alijo accidentalmente más tarde porque pensaron que se había ido.

Enlace http://codingkilledthecat.wordpress.com/2012/04/27/git-stash-pop-considered-harmful/


Verlo en acción podría ayudarlo a comprender mejor la diferencia.

Asumiendo que estamos trabajando en la rama master y tenemos un archivo hello.txt que contiene la cadena "Hola".

Vamos a modificar el archivo y agregarle una cadena de "mundo". Ahora desea pasar a una rama diferente para corregir un error menor que acaba de encontrar, por lo que necesita stash sus cambios:

git stash

Se mudó a la otra rama, corrigió el error y ahora está listo para continuar trabajando en su rama master , por lo que pop los cambios:

git stash pop

Ahora, si intentas revisar el contenido de alijo, obtendrás:

$ git stash show -p No stash found.

Sin embargo, si usa git stash apply lugar, obtendrá el contenido escondido pero también lo mantendrá:

$ git stash show -p diff --git a/hello.txt b/hello.txt index e965047..802992c 100644 --- a/hello.txt +++ b/hello.txt @@ -1 +1 @@ -Hello +Hello world

Así que el pop es como el pop de la pila: en realidad elimina el elemento una vez que se abre, mientras que apply es más como mirar .


git stash pop tira el (al principio, el más alto por defecto) después de aplicarlo, mientras que git stash apply deja en la lista de escondites para una posible reutilización posterior (o puede hacer que el git stash drop ).

Esto sucede a menos que haya conflictos después de que git stash pop , en este caso, no eliminará el stash, se comportará exactamente como se git stash apply .

Otra forma de verlo: git stash pop es git stash apply && git stash drop .


git stash pop aplica el elemento escondido superior y lo elimina de la pila. git stash apply hace lo mismo, pero lo deja en el stash stack.