git switch y git restore. Nuevos comandos para Git

Git desde la versión 2.23 incorpora dos nuevos comandos que son git switch y git restore como complemento a git checkout

Git checkout es uno de esos comandos de git que dependiendo del contexto en el que se utilice realiza una u otra cosa. Un todo terreno, que en muchos casos quizás pueda confundir a neófitos o usuarios (como yo) con pocos conocimientos sobre git.

Con el comando checkout podemos cambiar de rama de desarrollo, podemos crear una rama, podemos mover archivos entre ramas, etc. Hace poco escribí un artículo al respecto:

Entonces ¿qué hacen los nuevos comandos git switch y git restore?

Pues básicamente realizan funciones de git checkout pero, el nombre de este comando quizás lo hace un poco más intuitivo.

Con git checkout podemos cambiar a una rama distinta o que nuestro repositorio apunte a un commit específico en vez de a HEAD (el último commit enviado).

Y como vimos, también puede mover archivos entre ramas distintas. Git checkout sigue haciendo todas estas cosas, pero han venido estos dos nuevos comandos para tomarle la delantera.

git switch

Parece más intuitivo este nombre para cambiar entre ramas de nuestro repositorio. Switch en inglés significa cambio, y para eso lo podemos utilizar, para cambiar entre ramas y poder crearlas si no existen.

Si tenemos un repositorio y queremos ver las ramas que existen, basta con ejecutar:

git branch

De manera predeterminada existe una rama master, que es la principal, si queremos modificar algo del código y queremos crear una rama distinta, llamada por ejemplo prueba, lo podremos hacer así:

git switch -c prueba

Con el argumento -c (crear) git creará la nueva rama y cambiará a ella. Haremos los cambios deseados en dicha rama sin interferir al código de master.

Por cierto para alternar entre dos ramas de manera sencilla y rápida hay el comando:

git switch -

Este comando cambia a la rama anterior seleccionada, si solo hemos seleccionado dos, podremos cambiar de una a otra con este comando, sin necesidad de escribir el nombre, aunque el tabulador debería autocompletar los nombre…

Si no le pasamos la opción -c git switch cambiará a la rama especificada si está creada. También puedes cambiar a un commit específico en vez de HEAD con git switch y la opción -d (detached)

git switch -d 67e01b9

git restore

Este comando restaura (como induce a pensar el nombre del comando) el estado de un archivo a una revisión específica de git. De manera predeterminada lo hace al estado de la rama actual.

También se pueden restaurar a un commit diferente pasándole el commit con la opción –source

git restore archivo1.txt --source f544960

Con esto al archivo1.txt lo restauraremos al el estado que tenía en el commit f544960


Todo esto y mucho más pueden realizar estos commits. Yo no soy un experto ni nada parecido en git, así que estas son unas pinceladas de los usos más comunes que podremos hacer de estos comandos.

Consulta la ayuda en línea de estos comandos:

o en la página man de tu equipo. ¿Cambiarás el uso de git checkout que hacías por estos nuevos comandos? Comparte tu opinión en los comentarios.

O comparte en los comentarios otros casos interesantes de uso de estos nuevos comandos.

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.