Como desarrollador, probablemente uses la CLI de Git (Interfaz de Línea de Comandos) a diario. Sin embargo, escribir los mismos comandos una y otra vez puede ser laborioso, especialmente cuando los comandos son largos. Aquí es donde entran en juego los alias de Git para ayudar.

En este artículo, aprenderás cómo simplificar tus comandos de Git utilizando alias.

Tabla de Contenidos

Requisitos previos

  • Conocimiento de Git.

  • Git Bash instalado (opcional pero recomendado para usuarios de Windows).

  • Un IDE como VS Code (esto también es opcional).

¿Qué son los alias de Git?

Los alias de Git son accesos directos personalizados para comandos de Git existentes, lo que hace que las tareas comunes sean más rápidas y fáciles. Te permiten definir tus propios comandos, lo que te permite personalizar los accesos directos exactamente como desees.

Tienes dos opciones principales para agregar/crear alias de git en tu configuración de git, usar tu archivo de configuración de Git o agregarlos directamente a través de la CLI (terminal/línea de comandos).

Esta opción implica abrir tu archivo de configuración global de git y agregar tus alias de git al final del archivo.

Cómo configurar tu editor de Git preferido

Establezca su software editor de configuración predeterminado de Git, por ejemplo, yo uso VS Code para editar mi archivo de configuración de Git, pero puede utilizar el editor de texto/editor de código que prefiera.

Ejecute este comando para establecer Notepad como su editor preferido en Windows (CMD/PowerShell):

git config --global core.editor "notepad"

Ejecute este comando para establecer VS Code como su editor preferido en Windows y MacOS/Linux:

git config --global core.editor "code --wait"

Para establecer un editor predeterminado diferente, busque en línea “Establecer {editor} como editor predeterminado de Git” y reemplace {editor} con la aplicación que prefiera.

Cómo abrir el archivo de configuración de Git

Abra su terminal de preferencia e ingrese el siguiente comando. Esto abrirá el archivo de configuración global de Git (git config --global), en modo de edición (-e).

git config --global -e

Puede abrir el archivo de configuración de git directamente desde las siguientes ubicaciones:

Mac Os: Directorio de inicio → mostrar archivos ocultos (Cmd + Shift + H) → .gitconfig

Windows: C:\Users\NombreDeUsuario\ → luego mostrar archivos ocultos (en Ver) → y encontrar .gitconfig

Linux: Directorio de inicio → mostrar archivos ocultos (Ctrl + H) → .gitconfig

Cómo añadir un alias de Git a través de su archivo de configuración

Si está añadiendo alias de Git por primera vez, abra su archivo .gitconfig, añada [alias] al final y luego liste sus atajos a continuación. Esto le indica a Git que son alias. Añada su alias preferido (el comando abreviado que desea ejecutar).

El formato de un alias de git es <alias> = <comando>, así tenemos:

co = checkout
cob = checkout -b

Explicación de los ejemplos anteriores:

co = checkout esto mapea el comando git checkout a un comando más corto git co. Luego llamarías git co feature/123 en tu terminal.

No es necesario escribir git delante del comando, ya que la configuración lo prefiere automáticamente al saber que el comando que estás mapeando es un comando de Git.

Nota: Cualquier parámetro pasado al comando se aplicará solo al comando final llamado dentro del alias.

Se pueden agregar más alias de esta manera, mapeando accesos directos a comandos de git existentes. Guardar y cerrar el archivo hará que los alias estén disponibles en tu terminal.

Cómo Agregar Alias en la CLI

Si deseas un enfoque más simplificado para agregar alias de Git, puedes agregarlos directamente desde la terminal/línea de comandos.

Tomando los ejemplos anteriores, podemos agregarlos directamente de la siguiente manera:

El formato del comando es: git config --global alias.{alias} "{comando original}":

git config --global alias.co "checkout"
#o
git config --global alias.cob "checkout -b"

¡Es tan fácil como eso!

Cómo Crear Comandos Personalizados para Accesos Directos Más Complejos

Vale, esto parece genial, pero no es realmente tan impresionante, solo estamos eliminando unos pocos caracteres. Sin embargo, podemos hacerlos mucho más útiles, podemos crear nuestros comandos usando comandos de shell.

¡Tomemos el siguiente ejemplo, un comando que uso mucho!

new-work = !git checkout main && git pull && git cob

Este alias combina múltiples comandos de Git en un solo comando de shell. El carácter ! le indica a Git que lo trate como un comando de shell, no como un comando Git estándar.

Sin el !, Git interpreta el alias como un comando Git (por ejemplo, checkout se convierte en git checkout). Con !, Git sabe que debe ejecutarlo como un comando de shell sin agregar git al principio.

Al encadenar estos comandos, podemos escribir alias mucho más útiles. El anterior hará lo siguiente:

  • Primero, hacer checkout a la rama main.

  • Usando el operador &&, significa que los otros comandos solo se ejecutarán si el anterior ha sido exitoso.

  • En segundo lugar, descargará los cambios desde main.

  • Finalmente, creará una nueva rama desde la rama main usando nuestro otro alias git cob.

El comando final puede aceptar parámetros (como lo haría el comando Git original), por lo que se puede utilizar de la siguiente manera:

git new-work 'feature/new-work-from-main'

Cómo Usar Parámetros en Todos los Comandos

Hasta ahora, solo hemos podido pasar nuestros parámetros al comando final de git en nuestro alias. Sin embargo, ¿qué pasa si queremos pasar parámetros a algunos, si no a todos, de los comandos dentro del alias? Podemos lograr esto usando una función de shell.

Toma el siguiente ejemplo:

new-work = "!f() { git checkout \"$1\" && git pull && git checkout -b \"$2\"; }; f"

Arriba estamos usando una función de shell que procesa los parámetros de entrada.

Explicación:

  1. !f():

    • El ! le dice a Git que interprete el alias como un comando de shell en lugar de un comando Git estándar.

    • f() define una función de shell f que nos permitirá ejecutar múltiples comandos en secuencia.

  2. Todo lo que está dentro de { } es lo que se ejecutará dentro de la función f().

  3. git checkout \”$1”'\: Ejecutará un comando Git parametrizado, donde $1 está escapado y será reemplazado por el primer parámetro pasado al alias. Las secuencias de escape \" alrededor de $1 permiten nombres de ramas con espacios.

  4. && es un operador lógico que asegura que cada comando se ejecute solo si el anterior tiene éxito. Si falla git checkout "$1", los comandos que siguen no se ejecutarán.

  5. git checkout -b \”$2”\ : Crea una nueva rama con el nombre del segundo parámetro como antes.

  6. ;: Marca el final de la función f();

  7. f: La última f llama inmediatamente a la función de alias, lo que significa que cuando llamas al alias, declara la función y luego la llama inmediatamente.

Uso:

git new-work development task/feat-123

Otros Alias Útiles

[alias]
     co = checkout
    cob = checkout -b
    s = status
    tidy-up = !git checkout main && git branch | grep -v "main" | xargs git branch -D
    latest = !git checkout main && git pull
    new-work = "!f() { git checkout \"$1\" && git pull && git checkout -b \"$2\"; }; f"
    done = !git push -u origin HEAD
    save = !git add -A && git commit
    saveM = !git add -A && git commit -m
    br = branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate

Resumen

co: Cambiar a la rama especificada → git co task/feat-123

cob: Crea una nueva rama desde la rama actual → git cob feature/123

s: Llama a git status para ver el estado de la rama actual de git → git s

tidy-up: Elimina todas las ramas locales excepto maingit tidy-up

latest: Obtiene los últimos cambios de la rama remota maingit latest

new-work: Crea una nueva rama (2do parámetro) desde la rama del 1er parámetro → git new-work main feat/123

git done: Hace push de la rama actual al repositorio remoto (origin) y la establece como la rama upstream. Esto puede ser útil cuando haces push de tu primer commit y obtienes el error:
fatal: The current branch has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin

save: Simplemente agregará todos los archivos modificados, los confirmará, abrirá tu editor de Git por defecto y solicitará un mensaje de commit → git save

savem: Hará lo mismo que arriba, pero en lugar de abrir tu editor, puedes pasar un mensaje de confirmación en línea → git savem ‘Tarea123: agregar index.html

br: Este parece complicado, pero no es tan complicado como parece, pero destaca el poder de los alias. En esencia, personaliza el formato de salida de git branch para mostrar una lista detallada y codificada por colores de ramas, ordenadas por la fecha del commit más reciente, se verá algo similar a la imagen a continuación para cada rama que tengas localmente.

Ahí lo tienes, una introducción a los alias de Git y algunos ejemplos útiles de alias que puedes agregar como inicio a tu configuración.

Como siempre, si quieres hablar al respecto o saber sobre futuros artículos, puedes seguirme en Twitter.