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.
- Rama: La ramificación ayuda a crear una nueva línea de desarrollo para evitar cualquier desorden en la rama principal.
- Etiqueta: Una etiqueta en Git es una referencia al historial de Git.
- 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.
- Revertir una confirmación: Revertir ayuda a deshacer los cambios en el repositorio local y remoto.
Requisitos previos
- Conocimiento básico de Git (Haz clic aquí para aprender los fundamentos de Git).
¿Qué vamos a hacer?
- Crear una rama.
- Fusionar una rama con la rama principal.
- Crear una etiqueta.
- Cambiar el nombre de una rama.
- 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
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
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
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
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
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
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
Vamos a hacer checkout a la rama principal antes de seguir adelante.
git branch
git checkout main
git branch
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
Incluso puedes eliminar la rama del repo remoto.
git branch
git branch -a
git push origin --delete wrong-brach
git branch -a
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
Puedes ver que después de revertir la confirmación, tus cambios locales siguen estando disponibles.
git status
git pull
git log
git status
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
En este caso, puedes ver que después de revertir tu commit no tienes tus cambios localmente
git status
git pull
git log
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
Puedes ver que el repositorio remoto no contiene la confirmación que ha sido revertida.
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.