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.