Lo he estado usando git stash popdurante bastante tiempo. Recientemente me enteré del git stash applycomando. Cuando lo probé, parecía funcionar igual que git stash pop.
¿Cuál es la diferencia entre git stash popy git stash apply?
git stash pop tira el alijo (más alto, por defecto) después de aplicarlo, mientras que lo git stash apply deja en la lista de alijo para su posible reutilización posterior (o puede git stash drophacerlo).
Esto sucede a menos que haya conflictos después git stash pop, en cuyo caso no eliminará el alijo, dejando que se comporte exactamente igual git stash apply.
Otra forma de verlo: git stash popes git stash apply && git stash drop.
git stash popel resultado, aún obtendrá un error de conflicto.Obtuve este enlace útil que establece la diferencia, como John Zwinck ha declarado y un inconveniente de
git stash pop.Enlace: http://codingkilledthecat.wordpress.com/2012/04/27/git-stash-pop-considered-harmful/
fuente
git stash popaplica el elemento escondido superior y lo elimina de la pila.git stash applyhace lo mismo, pero lo deja en la pila de alijo.fuente
Verlo en acción podría ayudarlo a comprender mejor la diferencia.
Suponiendo que estamos trabajando en una
masterrama y tenemos un archivohello.txtque contiene la cadena "Hola".Modifiquemos el archivo y agreguemos una cadena "mundial". Ahora desea pasar a una rama diferente para corregir un error menor que acaba de encontrar, por lo que necesita realizar
stashsus cambios:Se mudó a la otra rama, solucionó el error y ahora está listo para continuar trabajando en su
masterrama, por lo quepoplos cambios:Ahora, si intentas revisar el contenido oculto, obtendrás:
Sin embargo, si lo usa
git stash apply, obtendrá el contenido oculto pero también lo mantendrá:Por
poplo tanto, es como el pop de la pila: en realidad elimina el elemento una vez queapplyaparece , mientras que es más como un vistazo .fuente
En
gitalijo hay un área de almacenamiento donde se pueden mover los archivos modificados actuales.stashEl área es útil cuando desea extraer algunos cambios delgitrepositorio y detectar algunos cambios en algunos archivos mutuos disponibles en elgitrepositorio.fuente
Git Stash
Pop vs applyWorkingSi desea aplicar sus cambios escondidos principales al cambio actual no escalonado y eliminar ese alijo también, entonces debe hacerlo
git stash pop.Pero si desea aplicar sus cambios escondidos principales al cambio actual sin etapas sin eliminarlo, entonces debe hacerlo
git stash apply.fuente