Tutorial avanzado de Git

Este artículo es la continuación de mi artículo existente Cómo empezar con GIT en Linux. Si eres nuevo en Git, te recomiendo que primero leas mi artículo anterior y luego continúes con éste.

En este artículo, cubriremos la creación de una rama, la etiqueta, el cambio de nombre de la rama y la reversión de los commits en Git.

  1. Rama: La ramificación ayuda a crear una nueva línea de desarrollo para evitar cualquier desorden en la rama principal.
  2. Etiqueta: Una etiqueta en Git es una referencia al historial de Git.
  3. Renombrar una rama: Renombrar una rama significa cambiar el nombre de la rama existente y tener nuestro código existente en una rama con un nuevo nombre.
  4. Revertir una confirmación: Revertir ayuda a deshacer los cambios en el repositorio local y remoto.

Requisitos previos

  1. Conocimiento básico de Git (Haz clic aquí para aprender los fundamentos de Git).

¿Qué vamos a hacer?

  1. Crear una rama.
  2. Fusionar una rama con la rama principal.
  3. Crear una etiqueta.
  4. Cambiar el nombre de una rama.
  5. Revertir una confirmación.

Crear una rama

Ve a tu repositorio local y comprueba tu rama y el estado de la misma mediante los siguientes comandos antes de crear una nueva rama. Aquí, test-repo es el nombre de mi repositorio.

pwd
git status
git log
git branch

Comprueba los registros de Git y la rama

Crea una nueva rama en tu repositorio existente y haz un check out en ella.

git branch
git branch my-feature-branch
git branch
git checkout my-feature-branch
git branch

Crear una nueva rama

Creemos un nuevo archivo y empujémoslo a la rama que hemos creado.

ll
touch new-file-in-my-feature-branch
git status
git add new-file-in-my-feature-branch
git commit -m "created a new file in my-feature-branch"
git push
git push --set-upstream origin my-feature-branch

Empuja un commit a la nueva rama

Fusionar una rama con la rama principal

Si queremos que nuestros cambios en la nueva rama se fusionen en la rama principal, podemos utilizar los siguientes comandos para fusionar esos cambios en la rama que queramos. En primer lugar, tenemos que hacer un checkout a la rama principal y luego fusionar la rama que hemos creado.

ll
git branch
git checkout main
ll
git merge my-feature-branch
ll

Fusionar una nueva rama en la rama principal

Crear una etiqueta

Crear una etiqueta es tan sencillo como crear una rama. Primero, hagamos algunos cambios en el repositorio, y luego creemos una etiqueta. Todavía tenemos que confirmar los cambios antes de empujarlos al repositorio remoto.

git tag
ll
touch new-file-for-tag
git status
git add new-file-for-tag
git tag -a mytag.v1 -m
git tag -a mytag.v1 -m "create a tag"
git tag
git log
git status
git commit -m "create a tag mytag.v1"
git push

Crear una etiqueta

Podemos comprobar qué etiquetas tenemos y hacer commits a esas etiquetas. De la forma en que empujamos nuestra rama también podemos empujar etiquetas.

git tag
git show mytag.v1
git push origin mytag.v1

Empuja la etiqueta

De la misma manera que hacemos checkout a una rama, también podemos hacer checkout a una etiqueta concreta.

git branch
git tag
git checkout mytag.v1
git branch

Pago a la etiqueta

Vamos a hacer checkout a la rama principal antes de seguir adelante.

git branch
git checkout main
git branch

Vuelve a cambiar la rama principal

Cambiar el nombre de una rama

A veces puedes sentir que necesitas cambiar el nombre de tu rama. Puedes hacerlo muy fácilmente utilizando los siguientes comandos.

git branch
git branch wrong-brach
git checkout wrong-brach
touch file-in-wrong-branch
git add file-in-wrong-branch
git commit -m "Created a branch wrong-brach with a new file"
git push
git push --set-upstream origin wrong-brach
git branch
git branch --move wrong-brach correct-branch
git branch
push --set-upstream origin correct-branch

Cambia el nombre de la rama

Incluso puedes eliminar la rama del repo remoto.

git branch
git branch -a
git push origin --delete  wrong-brach
git branch -a

Borrar la rama de la remota

Revertir una confirmación

En caso de que quieras revertir tu confirmación y seguir conservando tus cambios localmente, puedes utilizar los siguientes comandos para hacer un restablecimiento suave.

git branch
git checkout main
git log
git reset --soft HEAD~1
git log

Eliminar una confirmación local con un reinicio suave

Puedes ver que después de revertir la confirmación, tus cambios locales siguen estando disponibles.

git status
git pull
git log
git status

Saca lo último de la rama

Si quieres revertir tu confirmación y no quieres preservar tus cambios localmente, puedes utilizar los siguientes comandos y hacer un reinicio duro

git log
git reset --hard HEAD~1
git status
git log

Eliminar un compromiso local con el reinicio duro

En este caso, puedes ver que después de revertir tu commit no tienes tus cambios localmente

git status
git pull
git log

Saca lo último de la rama

En los dos escenarios anteriores, vimos revertir los commits locales. A veces puedes necesitar revertir tus commits desde el repo remoto. Para ello tienes que empujar tus cambios a la rama con «+» como sufijo del nombre de la rama después de revertir tus cambios localmente.

git branch
git log
git reset --hard HEAD~1
git push +main
git push origin  +main

Elimina un commit local con hard reset y empuja al brach para eliminarlo también del remoto

Puedes ver que el repositorio remoto no contiene la confirmación que ha sido revertida.

Compromiso no disponible en el control remoto

Conclusión

En este artículo, hemos cubierto escenarios como la creación de una rama y una etiqueta. Hemos visto cómo se puede renombrar una rama si nos damos cuenta de que necesitamos cambiar el nombre de la rama existente. También vimos que los commits en el repositorio local, así como en el repositorio remoto, pueden ser revertidos. Ahora puedes utilizar los comandos de este artículo y probarlos por tu cuenta.

También te podría gustar...