Conceptos avanzados en Git: exploración de potentes funciones y técnicas

Rebasing

Rebasar le permite incorporar cambios de una rama a otra modificando el historial de confirmaciones. Reproduce las confirmaciones de la rama de origen en la rama de destino. Esto da como resultado un historial de confirmación más limpio y lineal.

Ejemplo: supongamos que tiene una rama de función llamada feature-branch y desea incorporar los últimos cambios de la main rama. Puedes usar el siguiente comando:

git checkout feature-branch  
git rebase main  

Esto aplicará las confirmaciones de la main rama al feature-branch. Cualquier conflicto deberá resolverse durante el proceso de reorganización.

 

Stashing

Stashing le permite guardar sus cambios actuales, que no están listos para confirmarse, y volver temporalmente a un directorio de trabajo limpio. Esto es útil cuando necesita cambiar a una rama diferente o trabajar en una función diferente sin confirmar los cambios en los que está trabajando actualmente.

Ejemplo: supongamos que está trabajando en una rama de función y ha realizado algunos cambios, pero necesita cambiar a otra rama. Puede usar los siguientes comandos para ocultar sus cambios:

git stash

Después de cambiar a la nueva rama, puede aplicar los cambios ocultos usando:

git stash apply

 

Git Hooks

Git Hooks son secuencias de comandos que se activan mediante eventos específicos de Git, como la confirmación previa, la confirmación posterior, la inserción previa, etc. Le permiten automatizar ciertas acciones o aplicar reglas específicas en su flujo de trabajo.

Ejemplo: suponga que desea ejecutar un linter en su código antes de confirmar. Puede crear un script de enlace previo a la confirmación que active el linter y evite la confirmación si hay errores de linting.

 

Git Submodule

Git Submodule le permite incluir otro repositorio de Git como un subdirectorio dentro de su repositorio principal. Esto es útil cuando tiene un proyecto que depende de bibliotecas o componentes externos.

Ejemplo: Tiene un proyecto que requiere una biblioteca específica. En lugar de duplicar el código de la biblioteca en su repositorio, puede agregarlo como un submódulo. De esta manera, puede mantener el código de la biblioteca separado y actualizarlo fácilmente cuando sea necesario.

 

Git Revert and Git Reset

Git Revert deshace una confirmación anterior creando una nueva confirmación que deshace los cambios realizados en la confirmación original. Git Reset, por otro lado, le permite mover el puntero de bifurcación a una confirmación diferente, descartando efectivamente las confirmaciones del historial de confirmaciones.

Ejemplo: si desea deshacer la última confirmación, puede usar git revert HEAD para crear una nueva confirmación que deshaga los cambios realizados en la última confirmación. Si desea descartar la última confirmación por completo, puede usar git reset HEAD~1 para mover el puntero de bifurcación hacia atrás una confirmación.

 

Estos conceptos avanzados en Git brindan capacidades poderosas para administrar su repositorio de manera efectiva. Comprender cómo usarlos y cuándo aplicarlos mejorará en gran medida su flujo de trabajo Git y la gestión de proyectos.