Cómo usar los alias de Git: 10 ejemplos esenciales
Git es una herramienta poderosa y popular, y posiblemente el sistema de control de versiones más exitoso que haya existido. El poder de Git es evidente en su conjunto de comandos. Actualmente consta de unos 150 comandos, desde el git-status común hasta el oscuro git-get-tar-commit-id . Dado que cada comando admite su propio conjunto de opciones, hay una cantidad asombrosa para recordar.
Afortunadamente, Git tiene una forma de simplificar las cosas. Un alias de Git puede actuar como un atajo para cualquier subcomando, con cualquier conjunto de opciones. Con comandos externos, puede usar invocaciones aún más poderosas. Aquí hay 10 de los alias más útiles que puede configurar.
Cómo establecer un alias
Establecer un alias es tan simple como seguir este patrón:
git config --global alias.co 'checkout'
La opción –global establece el alias para todo el uso de Git por parte del usuario actual. Para hacer que un alias se aplique a todos los usuarios del sistema, use –system en su lugar. Para agregar un alias que sea específico del repositorio actual, use –local .
Si sabe dónde está un archivo de configuración, puede editarlo directamente. La configuración del sistema se encuentra en una ubicación global, normalmente / usr / local / etc / gitconfig . Su configuración específica de usuario vivirá en un archivo en su directorio personal como ~ / .gitconfig . La configuración local existe dentro de cada repositorio, en el archivo .git / config .
1. Un alias para cambiar de sucursal rápidamente
Dependiendo de su flujo de trabajo, podría cambiar de sucursal muchas veces a lo largo de cada sesión de trabajo. Para aliviar un poco el esfuerzo y practicar con el tipo de alias más simple, intente lo siguiente:
alias.co 'checkout'
Escribir git co feature1 ahora cambiará a la rama feature1 . El alias acorta el nombre del subcomando, que sigue funcionando con argumentos adicionales.
2. Ver estado condensado
De forma predeterminada, el comando git status produce una salida detallada. Explica el estado en detalle, con información útil para cualquiera que no esté familiarizado con Git. Sin embargo, si desea ahorrar algo de espacio y ya está familiarizado con la terminología de Git, es posible que desee configurar un alias para una versión más corta:
alias.st status -sb
Esta es solo una variación muy leve en git-status , pero la opción -s produce una salida corta que hace que las cosas sean mucho más breves. Tomará algo como este estado predeterminado de git:
Y produzca esto en su lugar:
La opción -b muestra información de seguimiento y rama que -s suprimiría de otro modo.
3. Mostrar registro de resumen
Git ofrece muchas formas de inspeccionar el historial de un proyecto a través del comando git-log . Puede filtrar las confirmaciones que informa y puede mostrar muchos datos diferentes asociados con cada confirmación. A veces, sin embargo, desea un registro que sea lo más compacto posible. La opción –oneline proporciona esto, pero es mucho más rápido asignarle un alias, dado que es una que puede usar con bastante frecuencia:
alias.ll 'log --oneline'
La salida presenta una confirmación por línea, con el título del mensaje de confirmación y un hash abreviado. Se parece a esto:
4. Deshaciendo el último cambio
El comando git reset es valioso, pero no es el más fácil de entender. A veces, solo desea un deshacer simple que devuelva el último compromiso. La opción –soft asegura que Git solo elimina la última confirmación, sin cambiar nada sobre los archivos locales en su árbol de trabajo. HEAD ~ 1 es simplemente una forma de hacer referencia a la confirmación antes de HEAD.
alias.undo 'reset --soft HEAD~1'
5. Registro de la última confirmación
Si está eligiendo un proyecto del día anterior, puede ser útil examinar la última confirmación. Con un alias de git-log , puede obtener un informe rápido y detallado de la última confirmación:
alias.last 'log -1 HEAD --stat'
La opción -1 HEAD simplemente solicita la última confirmación y –stat enumera los archivos que la confirmación afectó, con el número de líneas insertadas y eliminadas para cada uno.
6. Un compromiso sencillo de una sola vez
Probablemente se encuentre agregando archivos y consignándolos en el siguiente paso con bastante frecuencia. A menos que su flujo de trabajo sea más complicado, es posible que desee simplificar este proceso con un alias:
alias.ac '!git add -A && git commit'
Los componentes individuales no requieren mucha explicación, además de señalar que la opción -A pasada a git-add actualizará automáticamente el índice para que todos los archivos coincidan con la copia de trabajo. Se ocupa de la eliminación, modificación y creación de archivos.
Una cosa interesante a tener en cuenta sobre este alias es que combina dos comandos. ¡Lo hace usando el ! símbolo como el primer carácter del alias. Esto le informa a Git que lo que sigue es un comando de shell externo en lugar de un subcomando.
7. Formateo de rama elegante
Otro comando con mucha flexibilidad, git-branch puede formatear su salida de muchas formas más allá del escaso valor predeterminado.
alias.br "branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate"
Examine el formato de principio a fin. Tenga en cuenta que incluye muchos campos especiales. % (HEAD) agrega un asterisco junto a la rama actual.
Los alias son una excelente manera de experimentar con el formato de comandos como git-branch . Desarrollará preferencias con el tiempo, por lo que es imprescindible realizar un seguimiento de las opciones que producen su salida favorita.
8. Resumen de cambios por colaborador
Una variante de git log, git-shortlog agrupa las confirmaciones que muestra por autor. Esto es ideal para notas de lanzamiento o simplemente para vigilar quién hizo qué recientemente.
Algunas opciones lo convierten en un resumen de autor de uso general muy conveniente, perfecto para el uso regular a través de un alias. La opción -e muestra direcciones de correo electrónico además de nombres. La opción –summary solo genera un recuento total en lugar del tema de cada confirmación. Y –numerado ordena la producción final por el número total de contribuciones. Puedes usar este alias:
alias.contrib 'shortlog -e --summary --numbered'
Para producir el siguiente resultado:
9. Enumere las ramas ordenadas por última modificación
Ahora, para trabajar un poco más con las ramas, esta vez usando un subcomando de nivel inferior. Este alias complicado es otro ejemplo de un comando externo, una canalización, en este caso. Primero, el comando git-for-each-ref recorre todas las ramas conocidas. Lo hace en orden de fecha de autor y formatea la salida para mostrar esa fecha junto con el hash de confirmación. Finalmente, usa sed para quitar refs / heads / del nombre de cada rama.
alias.b '!git for-each-ref --sort="-authordate" --format="%(authordate)%09%(objectname:short)%09%(refname)" refs/heads | sed -e "s-refs/heads/--"'
10. Un alias para mostrar todos los alias
Con todo este soporte para alias, es sorprendente que Git no ofrezca una manera fácil de ver todos los alias que ha configurado. Sin embargo, no se preocupe, ¡puede solucionarlo con un alias! El comando git config enumera todas las configuraciones actuales. Puede filtrar valores usando la opción –get-regexp , por lo que el siguiente alias le brinda un comando git alias útil:
alias.alias 'git config --get-regexp ^alias.'
Ahorre tiempo y frustración con los alias de Git
Los alias de Git le ahorran tiempo al eliminar la necesidad de escribir comandos largos y complicados. Git tiene una gran cantidad de subcomandos, pero los alias son fáciles de reutilizar y mantener. Incluso puede agrupar alias en su proyecto a través de la configuración local, lo que le permite compartir atajos y prácticas estándar.
Al igual que los alias de Linux, los alias de Git te permiten escribir menos y hacer más. Intente experimentar con los alias anteriores y explore el conjunto completo de comandos de Git para ver la gran cantidad de funciones disponibles.