Guardar los cambios de los archivos por nombre en Git

Azhar Bashir Khan 6 febrero 2022
Guardar los cambios de los archivos por nombre en Git

Este tutorial presentará cómo ocultar los cambios de los archivos por nombre en Git.

En Git, es posible que deseemos guardar los cambios por un tiempo y trabajar en la versión de los archivos antes de que se realicen estos cambios.

Podemos usar el comando git stash push para ocultar los cambios y guardarlos para su uso posterior.

Nuevamente, más adelante, podemos usar el comando git stash pop para recuperar estos cambios.

A veces, es posible que deseemos guardar la entrada oculta con un nombre para facilitar su uso. Es posible que deseemos usar el nombre de la entrada oculta para buscarla en la lista oculta y usar el nombre para recuperar los cambios.

Ahora ilustraremos esto con un ejemplo.

Uso de git stash push para almacenar cambios de archivos por nombre en Git

Supongamos que tenemos un archivo llamado sample.txt en la rama main en el repositorio de Git. Es posible que hayamos realizado algunos cambios en el archivo localmente.

Podemos comprobar el estado del repositorio de la siguiente manera.

$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   sample.txt

Por lo tanto, podemos ver que el archivo sample.txt tiene algunos cambios que deben confirmarse.

Ahora, decidimos que, en lugar de confirmar esos cambios, es posible que deseemos ocultar esos cambios con un nombre para recuperarlos fácilmente más adelante.

La sintaxis del comando git stash push para ocultar cambios con un nombre es git stash push -m <stash_name>.

Ahora guardaremos los cambios del archivo sample.txt con el siguiente nombre.

$ git stash push -m "my_stash"
Saved working directory and index state On master: my_stash

Podemos ver el nombre del stash dado en la lista de stash.

$ git stash list
stash@{0}: On master: my_stash

Por lo tanto, en la lista de stash, podemos ver la entrada del stash con nuestro nombre de stash dado, es decir, mi_stash.

Ahora volveremos a verificar los cambios en el árbol de trabajo, de la siguiente manera.

$ git status
On branch main
nothing to commit, working tree clean

Como hemos hecho el ocultamiento, Git no muestra nuevos cambios.

Cuando sea necesario, podemos recuperar los cambios del almacén oculto usando el nombre dado a la entrada oculta que acabamos de crear.

Necesitamos usar el comando git stash apply para recuperar los cambios en el árbol de trabajo.

La sintaxis del comando git stash apply para recuperar la entrada de almacenamiento por nombre y aplicar los cambios al árbol de trabajo es git stash apply stash^{/<stash_name>}.

Tenga en cuenta que estamos usando una expresión regular con el nombre del stash para obtener la entrada al stash deseada.

Por lo tanto, debemos hacer lo siguiente para recuperar la entrada del stash del nombre my_stash.

$ git stash apply stash^{/my_stash}
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   sample.txt

Ahora podemos ver los cambios aplicados al árbol de trabajo, que hemos recuperado del stash, de la siguiente manera.

$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   sample.txt

A diferencia del comando git stash pop, el comando git stash apply no elimina el estado oculto (es decir,) la entrada oculta de la lista oculta. Solo aplica la entrada oculta dada sobre el estado actual del árbol de trabajo.

Por lo tanto, aún podemos ver la entrada oculta en la lista oculta.

$ git stash list
stash@{0}: On master: my_stash

Podemos eliminar la entrada oculta de la lista oculta.

Necesitamos ejecutar el comando de la siguiente manera.

$ git stash clear

Precaución: use este comando con cuidado porque elimina todas las entradas ocultas.

Para eliminar solo una entrada específica, como en nuestro caso, debemos hacer lo siguiente.

$ git stash pop stash@{0}

Por lo tanto, en este caso, la entrada oculta ahora se eliminará de la lista oculta.

Artículo relacionado - Git Stash

Artículo relacionado - Git Push