Git - Operación de alijo
Suponga que está implementando una nueva función para su producto. Su código está en progreso y de repente llega una escalada de cliente. Debido a esto, debe dejar de lado el trabajo de su nueva función durante unas horas. No puede confirmar su código parcial y tampoco puede descartar sus cambios. Por lo tanto, necesita un espacio temporal, donde puede almacenar sus cambios parciales y luego confirmarlos.
En Git, la operación de ocultación toma los archivos de seguimiento modificados, cambia las etapas y los guarda en una pila de cambios sin terminar que puede volver a aplicar en cualquier momento.
[[email protected] project]$ git status -s
M string.c
?? string
Ahora, desea cambiar de sucursal para la escalada de clientes, pero no desea comprometer lo que ha estado trabajando todavía; para que esconda los cambios. Para colocar un nuevo alijo en su pila, ejecute elgit stash mando.
[[email protected] project]$ git stash
Saved working directory and index state WIP on master: e86f062 Added my_strcpy function
HEAD is now at e86f062 Added my_strcpy function
Ahora, su directorio de trabajo está limpio y todos los cambios se guardan en una pila. Comprobémoslo con elgit status mando.
[[email protected] project]$ git status -s
?? string
Ahora puede cambiar de rama de forma segura y trabajar en otro lugar. Podemos ver una lista de cambios ocultos usando elgit stash list mando.
[[email protected] project]$ git stash list
[email protected]{0}: WIP on master: e86f062 Added my_strcpy function
Suponga que ha resuelto la escalada del cliente y está de vuelta en su nueva función buscando su código a medio hacer, simplemente ejecute el git stash pop comando, para eliminar los cambios de la pila y colocarlos en el directorio de trabajo actual.
[[email protected] project]$ git status -s
?? string
[[email protected] project]$ git stash pop
El comando anterior producirá el siguiente resultado:
# On branch master
# Changed but not updated:
# (use "git add ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
#
#
modified: string.c
#
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
#
string
no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/[email protected]{0} (36f79dfedae4ac20e2e8558830154bd6315e72d4)
[[email protected] project]$ git status -s
M string.c
?? string