git control de versiones

Aprende Git de manera sencilla: Git Aliases

En este décimo artículo sobre la guía para aprender Git de manera sencilla y desde cero, vamos a ver los alias de Git.

Los alias de Git son una especie de «atajos» que son muy útiles para no tener que escribir una sentencia de git completa, o concatenar varias sentencias en un solo comando. Estos alias se configuran y guardan en el archivo config de git (ya sea por usuario, por proyecto o de manera global).

Por ejemplo, para editar el archivo de configuración global de git teclearemos en la terminal el siguiente comando:

git config --global --edit

Como lo mejor para entenderlos es verlos con ejemplos, a continuación se listan una serie de alias útiles para cualquier proyecto, listos para copiar y pegar en tu git config:

[alias]
    # Semantic Commits
    cfeat = "!f() { git commit -m \"feat: $1\"; }; f"
    cfix = "!f() { git commit -m \"fix: $1\"; }; f"
    cdocs = "!f() { git commit -m \"docs: $1\"; }; f"
    cstyle = "!f() { git commit -m \"style: $1\"; }; f"
    crefactor = "!f() { git commit -m \"refactor: $1\"; }; f"
    ctest = "!f() { git commit -m \"test: $1\"; }; f"
    cchore = "!f() { git commit -m \"chore: $1\"; }; f"

    # Useful alias
    uncommit = reset HEAD~1
    plog = log --graph --pretty='format:%C(red)%d%C(reset) %C(yellow)%h%C(reset) %ar %C(green)%aN%C(reset) %s'
    dbranches = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d"
    newFeature = "!f() { \
        git checkout develop; \
        git pull; \
        git checkout -b F/\"${1// /-}\"; \
        git push -u origin F/\"${1// /-}\" -o merge_request.create -o merge_request.remove_source_branch -o merge_request.title=F/\"${1// /-}\" -o merge_request.squash -o merge_request.target=develop; \
        git pull; \
    }; f"

Git sustituye el nuevo comando por lo que sea que hayas puesto en el alias. Si quieres ejecutar un comando externo en lugar de un subcomando de Git puedes comenzar el alias con !.

De este modo, un alias como el de uncommit mostrado en el ejemplo, al escribir git uncommit, por debajo se ejecuta realmente git reset HEAD~1.

Otro alias interesante es el de newFeature. Al ejecutar git newFeature «My awesome Feature», internamente lo que va a hacer es ir a la rama develop, hacer un pull para traer los últimos cambios, crear una rama con el nombre F/my-awesome-feature (sustituyendo espacios por guiones), publicar la rama en remoto y crear un merge request automáticamente (en caso de que utilices GitLab), y finalizar con un pull.

Como ves, con esta característica de Git, puedes generar tantos alias como desees y optimizar y automatizar gran parte de tu trabajo.

¿Te ha resultado útil esta información? 🍺

Si este post te ha resuelto un problema, invítame a un café o a una cerveza. Con este pequeño gesto me animas a seguir escribiendo.

Comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *:

  • El fin del tratamiento es únicamente la moderación de comentarios para evitar spam
  • La legitimación es tu consentimiento al comentar
  • No se comunicará ningún dato a terceros salvo por obligación legal
  • Tienes derecho al acceso, rectificación y eliminación de los comentarios