Lo he estado usando git stash pop
durante bastante tiempo. Recientemente me enteré del git stash apply
comando. Cuando lo probé, parecía funcionar igual que git stash pop
.
¿Cuál es la diferencia entre git stash pop
y 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 drop
hacerlo).
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 pop
es git stash apply && git stash drop
.
git stash pop
el 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 pop
aplica el elemento escondido superior y lo elimina de la pila.git stash apply
hace 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
master
rama y tenemos un archivohello.txt
que 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
stash
sus cambios:Se mudó a la otra rama, solucionó el error y ahora está listo para continuar trabajando en su
master
rama, por lo quepop
los 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
pop
lo tanto, es como el pop de la pila: en realidad elimina el elemento una vez queapply
aparece , mientras que es más como un vistazo .fuente
En
git
alijo hay un área de almacenamiento donde se pueden mover los archivos modificados actuales.stash
El área es útil cuando desea extraer algunos cambios delgit
repositorio y detectar algunos cambios en algunos archivos mutuos disponibles en elgit
repositorio.fuente
Git Stash
Pop vs apply
WorkingSi 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