Archivos específicos de Git Stash

Azhar Bashir Khan 6 febrero 2022
Archivos específicos de Git Stash

Este tutorial verá cómo ocultar los cambios de solo archivos específicos en Git.

En Git, cuando hacemos algunos cambios en el árbol de trabajo, es posible que tengamos algunos cambios que pueden estar preparados en el repositorio local o que aún no están preparados.

Es posible que ahora deseemos guardar estos cambios por un tiempo y trabajar en una versión de los archivos antes de que estos cambios se lleven a cabo.

Por lo tanto, para tales fines, podemos usar el comando git stash push para ocultar los cambios (es decir) para su uso posterior.

Nuevamente, después, podemos usar el comando git stash pop para recuperar estos cambios.

En ocasiones, es posible que necesitemos guardar o esconder los cambios realizados solo en archivos específicos, en lugar de todos los archivos que se modifican en el árbol de trabajo del repositorio.

Ahora ilustraremos esto con un ejemplo.

Uso de git stash push para guardar cambios de archivos específicos en Git

Supongamos que tenemos un archivo llamado example.txt en el árbol de trabajo del repositorio. Hicimos algunos cambios en el archivo y ahora queremos guardar esos cambios por un tiempo en Git.

También podemos tener cambios en los otros archivos en el árbol de trabajo, pero no queremos esconderlos.

La sintaxis del comando para guardar archivos específicos en Git es git stash push <archivo>.

Por lo tanto, hacemos lo siguiente para ocultar los cambios realizados solo en el archivo example.txt.

$ git stash push example.txt
Saved working directory and index state On main: example.txt
HEAD is now at 8b3560b minor changes

Por lo tanto, hemos guardado los cambios solo del archivo example.txt.

Ahora podemos enumerar las entradas ocultas y ver nuestra entrada oculta, de la siguiente manera.

$ git stash list
stash@{0}: On main: example.txt

También podemos agregar un mensaje específico mientras ocultamos de la siguiente manera.

$ git stash push -m "my example stash" example.txt
Saved working directory and index state On main: my example stash example.txt
HEAD is now at 8b3560b minor changes

Podemos enumerarlo de nuevo de la siguiente manera.

$ git stash list
stash@{0}: On main: my example stash example.txt

Aparte de esto, también podemos ocultar de forma interactiva cambios específicos de los archivos deseados en Git.

Para esto, necesitamos usar la opción --patch o -p junto con el comando git stash push.

Así, para hacer esto en nuestro ejemplo, hacemos lo siguiente.

$ git stash push --patch
diff --git a/example.txt
index 7ab5ca4..a281fc6 100644
--- a/example.txt	
+++ b/example.txt	
@@ -4,9 +4,11 @@
 
 some text
+new text
 
some other text
some text again
+second new text


Stash this hunk [y,n,q,a,d,/,s,e,?]? y

Saved working directory and index state WIP on main: 8b3560b minor changes

El comando git stash itera a través de todos los cambios en el árbol de trabajo del repositorio y solicita elegir los cambios para guardar.

Aquí, hemos ingresado la opción y además de la pregunta, Stash this hunk [y,n,q,a,d,/,s,e,?]? para ocultar los cambios del archivo example.txt.

Podemos introducir la opción n para no almacenar el hunk actual del archivo (el cambio).

Para obtener más información sobre git stash y las opciones disponibles, consulte este sitio, a saber. git stash - Guardar cambios.

Artículo relacionado - Git Stash