Skip to main content

10 alias de git para un flujo de trabajo más rápido y productivo

Escrito por
Headshot of Royee Shemesh

Royee Shemesh

2 de diciembre de 2020

0 minutos de lectura

Usar git como herramienta de control de versiones de código es parte del día a día de los desarrolladores, y es posible que algunos de ustedes trabajen con git desde la línea de comandos. Preferiblemente con un tema oscuro, ¿verdad?

Aunque una interfaz gráfica de usuario para git puede ser útil en un entorno de desarrollo integrado (IDE), como IntelliJ o VS Code, a veces quizá tengas que recurrir a la interfaz de línea de comandos (CLI).

En este artículo, presentamos 10 alias de git que pueden ayudarte a lograr un flujo de trabajo de git más rápido y productivo, tanto individualmente como en equipo.

¡Que empiecen los juegos de git!

¿Cómo configurar un alias de git?

Los alias de git suelen almacenarse en la configuración de tu usuario, en ~/.gitconfig. También puedes configurar alias manualmente, por ejemplo, con el comando git config alias.s ‘status -s’.

A continuación, veremos los alias de git que debes agregar a tu archivo ~/.gitconfig, dentro de una sección específica [alias], donde se almacenan todos los alias y sus comandos. Aquí tienes algunos ejemplos de cómo configurar alias de git en ese archivo.

¿Cómo enumerar los alias de git?

El ejecutable de git tiene una opción de línea de comandos para enumerar toda la configuración de git e indicar su origen (sistema, usuario o local). El siguiente comando de git mostrará de forma detallada toda la configuración y sus orígenes: git config --list --show-origin.

[alias]
    s = status
    co = checkout

Estado de git

¿Sueles ejecutar el comando git status? ¡Yo sí! Usa el siguiente alias de git para crear un atajo:

[alias]
    s = status

Así se ve en acción:

$ git s

On branch main
Your branch is up to date with 'origin/main.

nothing to commit, working tree clean

Git checkout

También es común cambiar de una rama de git a otra. ¡Hagamos que sea más rápido!

Agrega el alias:

[alias]
co = checkout

Y luego pruébalo:

$ git co feat/add-popup

De hecho, puedes cambiar de rama en git con un atajo, como git checkout -, que te lleva a la rama anterior. En realidad, es una forma abreviada de git checkout @{-1}, así que este alias también puede usarlo con git co -.

Crear una rama nueva y cambiar a ella

Si sueles crear ramas nuevas de git desde la CLI, este alias te ahorrará algunas pulsaciones:

[alias]
cob = checkout -b

Úsalo así:

$ git cob feat/add-popup

Switched to a new branch 'feat/add-popup'

Eliminar una rama

Quizá no elimines ramas con frecuencia, pero cuando tengas que hacerlo, puede llevarte tiempo buscar en Google los comandos de git para encontrar el argumento y la opción adecuados. En su lugar, podemos crear un alias más corto y fácil de recordar relacionado con el cambio de rama de git:

[alias]
del = branch -D

Úsalo así:

$ git del feat/add-popup
Deleted branch featureB (was b5cbv113).

Enumerar todas las ramas

Cuando trabajamos en varias funciones, nuestro flujo de trabajo de git suele terminar con varias ramas. Puede ser difícil recordar dónde nos quedamos y qué rama usamos.

El siguiente alias de git enumerará todas las ramas y las ordenará por fecha de commit, mostrando primero la rama de git más reciente según los commits que se le hayan hecho.

[alias]

br = branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate

Así puedes usarlo y este podría ser el resultado:

$ git br
Captura de pantalla de una terminal que muestra la rama master de Git en la versión v0.0.0-development y una corrección reciente en el archivo deps-lockfile.

Como puedes ver, ofrece más contexto, por ejemplo, el nombre del autor de cada uno de los últimos commits, con resaltados de colores.

Git commit

Hacer commits temprano y con frecuencia es una de las ventajas de git. Es rápido y no agrega sobrecarga gracias al funcionamiento interno de git. Entonces, ¿por qué no hacerlo con frecuencia?

En realidad, depende de tu flujo de trabajo de git. Sin embargo, si trabajas con flujos de trabajo de git con frecuencia y quieres guardar tus commits igual de seguido (para no perder de vista el trabajo que estás haciendo), el texto del mensaje del commit puede ser menos prioritario, sobre todo si trabajas con un flujo de trabajo de pull request.

Para guardar puntos de estado de commit con un flujo de trabajo de git más rápido y productivo, el siguiente alias agrega rápidamente todos los archivos de git que no están en staging al área de staging y les asigna un mensaje de commit genérico.

[alias]
save = !git add -A && git commit -m 'chore: commit save point

Así se ve en acción:

$ git save

[feat/add-popup 98cba110acb] chore: commit save point
1 file changed, 1 insertion(+)

Revertir cambios

Si a veces necesitas hacer commits y luego revertir los cambios, el siguiente alias devolverá todos los cambios de tus commits al área local que no está en staging, para que puedas modificarlos y agregarlos al área de staging (a menudo llamada índice).

[alias]
    undo = reset HEAD~1 --mixed

Una vez que ejecutes este alias de git, usa git undo para restablecer el commit anterior en esta rama y recuperar todos los cambios confirmados anteriormente como cambios sin confirmar, para que puedas seguir trabajando en ellos.

Úsalo así:

$ git undo
Unstaged changes after reset:
M app.js

Limpiar todos los cambios

Todos queremos empezar de cero, ¿verdad? Si necesitas limpiar rápidamente todos los cambios locales que no quieres confirmar en el repositorio en esta etapa, ni siquiera de forma local, usa el siguiente alias:

[alias]
 res = !git reset --hard

Restablece todos los cambios en staging (los que agregaste con el comando git add). Así se ve en acción:

$ git res
HEAD is now at 6e7879bc81a chore: commit save point 

Enviar cambios al repositorio remoto

Cuando terminas de trabajar en el código, envías commits al repositorio de git remoto, como todos nosotros, ¿verdad? A menudo lo hacemos con un comando largo: git push origin o git push origin main.

Sin embargo, si trabajas en una rama con el mismo nombre que aquella a la que quieres enviar los cambios, puedes usar HEAD como alias para el nombre de la rama remota. Envía tus commits desde el repositorio local de git a los repositorios remotos origin o upstream con un atajo tan sencillo como git done, usando este alias:

[alias]
    done = !git push origin HEAD

Este alias y el atajo HEAD suelen ser útiles cuando los nombres de las ramas son largos. Así de fácil puedes usarlo:

$ git done

Enumerating objects: 42, done.
Counting objects: 100% (42/52), done.
Delta compression using up to 8 threads
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 1.63 KiB | 7.63 MiB/s, done.
Total 42 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 8 local objects.
To github.com:royeeshemesh/git-workflow.git
   bc535183..1e42d90  HEAD -> main

Git log

Para terminar, presentaremos uno de los comandos de git más útiles: git log. Hay muchas formas de usar alias de git para personalizar el resultado del registro, pero te recomiendo este alias de git:

[alias]
    lg = !git log --pretty=format:\"%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) [%an]\" --abbrev-commit -30

Este alias de git hará que git log muestre un resultado mucho más fácil de leer. Pruébalo:

$ git log
Captura de pantalla de una terminal que muestra un registro de Git con el historial de confirmaciones codificado por colores y etiquetas de ramas.

Resumen de alias de git

Repasamos 10 alias de git para aumentar tu productividad y agilizar tu flujo de trabajo de git si trabajas desde la línea de comandos.

Aquí tienes la lista completa de alias de git que puedes incluir en tu archivo ~/.gitconfig:

[alias]
    s = status
    co = checkout
    cob = checkout -b
    del = branch -D    
    br = branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate
    save = !git add -A && git commit -m 'chore: savepoint'
    undo = reset HEAD~1 --mixed
    res = !git reset --hard
    done = !git push origin HEAD
    lg = !git log --pretty=format:\"%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) [%an]\" --abbrev-commit -30
What’s next?

¿Qué sigue?

Te recomendamos consultar nuestras 10 prácticas recomendadas de seguridad de GitHub. Ya que estás, ¿por qué no conectas tu repositorio de git a Snyk para encontrar y corregir vulnerabilidades en las dependencias de código abierto de tus proyectos?

Empieza con los desafíos de Capture the Flag

Aprende a resolver desafíos de captura la bandera con nuestro taller virtual introductorio a pedido.

Publicado en: