Chuck's Academy

Git Branching y Merging

Herramientas y Comandos Avanzados

Herramientas y Comandos Avanzados en Git

Git ofrece una amplia variedad de herramientas y comandos avanzados que pueden mejorar significativamente tu flujo de trabajo. Este capítulo introduce algunas de estas herramientas y comandos, profundizando en sus usos y aplicaciones.

Stash: Guardar Cambios Temporales

El comando git stash te permite guardar cambios temporales que aún no quieres comprometer. Es útil cuando necesitas cambiar de rama pero no quieres perder tu trabajo actual.

Guardar Cambios en el Stash:

bash

Aplicar los Cambios del Stash:

bash

Listar los Stashes:

bash

Aplicar y Eliminar el Último Stash:

bash

Cherry-Pick: Aplicar Commits Específicos

El comando git cherry-pick permite aplicar commits específicos de una rama a otra. Es útil cuando quieres traer únicamente ciertos cambios en lugar de una fusión completa.

Aplicar un Commit Específico:

bash

Ejemplo:

bash

Bisect: Encontrar Commits Problemáticos

El comando git bisect te permite aislar el commit que introdujo un error utilizando una búsqueda binaria entre un rango de commits.

Iniciar Bisect:

bash

Marcar el Commit Algo Bueno:

bash

Marcar el Commit Algo Malo:

bash

Git iterará a través de los commits para encontrar el que introdujo el error. Una vez encontrado, usa el siguiente comando para terminar:

bash

Rebasing Interactivo: Modificar el Historial de Commits

El rebase interactivo es una herramienta poderosa para reescribir el historial de commits, permitiéndote editar, combinar y reordenar commits.

Iniciar un Rebase Interactivo:

bash

Reflog: Registro de Referencias

El comando git reflog permite ver todos los cambios realizados en las referencias (como HEAD) en tu repositorio local. Es útil para recuperar commits perdidos.

Ver el Reflog:

bash

Amending: Modificar el Último Commit

Si cometiste un error en el último commit, puedes modificarlo sin crear un nuevo commit usando git commit --amend.

Corregir el Último Commit:

bash

Hooks: Automatización de Tareas

Git Hooks son scripts que se ejecutan automáticamente en ciertos eventos. Pueden ayudar a automatizar flujos de trabajo, como validaciones pre-commit, despliegues, o integraciones con otras herramientas.

Ejemplos de Hooks:

  • pre-commit: Se ejecuta antes de que se realice un commit.
  • pre-push: Se ejecuta antes de que se realice un push.
  • post-merge: Se ejecuta después de que se complete una fusión.

Los hooks se encuentran en el directorio .git/hooks y pueden configurarse escribiendo scripts en Shell, Python, Ruby, etc.

Ejemplo de pre-commit hook en Bash:

bash

Submodules: Git en Subdirectorios

Los submódulos permiten incluir y gestionar repositorios Git dentro de otro repositorio Git. Son útiles para gestionar dependencias de código separadas.

Añadir un Submódulo:

bash

Inicializar y Actualizar Submódulos:

bash

Configuraciones Avanzadas

Aliases

Personaliza comandos largos y repetitivos definiendo aliases en tu configuración de Git:

bash

Configuración de Identidad

Puedes definir identidades diferentes para distintos repositorios:

bash

Resumen

  1. Stash: Guardar y recuperar cambios temporales.
  2. Cherry-Pick: Aplicar commits específicos a otra rama.
  3. Bisect: Encontrar el commit que introdujo un error.
  4. Reflog: Ver el historial de cambios de referencias.
  5. Amending: Corrección del último commit.
  6. Hooks: Automatización de tareas con scripts.
  7. Submodules: Gestionar dependencias dentro de un repositorio.
  8. Configuraciones Avanzadas: Aliases y configuración de identidad.

El uso de estas herramientas y comandos avanzados puede aumentar significativamente tu eficiencia y organización al trabajar con Git. En el siguiente capítulo, exploraremos la conclusión y recomendaciones finales para el uso de Git.


Pregúntame lo que sea