En un artículo anterior ya vimos cómo crear alias en Git para aumentar nuestra productividad, pero podemos ir un paso más allá. En una serie de tutoriales hemos visto también cómo instalar ZSH y Oh My ZSH! en macOS, cómo instalar ZSH y Oh My ZSH! en GNU/Linux y cómo instalar ZSH y Oh My ZSH! en el subsistema Linux en Windows 10, así que ahora nos podemos centrar en las características que Oh My ZSH! tiene específicamente para aumentar nuestra productividad mientras utilizamos Git mediante la consola de comandos.
La mayoría de comandos que hemos utilizado a lo largo de este curso, algunos de ellos un poco largos, para ir haciendo las operaciones necesarias con Git, tienen su alternativa en forma de alias en Oh My ZSH! Esto no quiere decir que no haya que aprenderse los comandos completos, porque puede que en algún momento nos encontremos en un equipo que no tenga Oh My ZSH! instalado y entonces no sabríamos cómo utilizar Git, pero dando por hecho que en su mayoría los conocemos, es muy útil usar alias que permitan agilizar nuestras interacciones con la terminal para invertir el mínimo tiempo posible en esto y tener más tiempo para dedicarle a lo realmente importante: el desarrollo.
Listado completo de alias para Git
Una vez tenemos instalado Oh My ZSH! es muy sencillo obtener un listado de todos los alias que tenemos disponibles para su uso con la línea de comandos de Git:
$ alias | grep git
El comando alias nos muestra por pantalla una lista con todos los alias que tenemos, y el comando grep realiza una búsqueda de la palabra git dentro de esa lista de alias para finalmente mostrarnos sólo aquellas líneas que contienen la palabra git. Es recomendable usar este filtro porque Oh My ZSH! tiene un sinfín de alias y podemos volvernos locos buscando únicamente los que puedan interesarnos.
Los alias para Git más útiles en Oh My ZSH!
Para confeccionar esta lista, un tanto subjetiva de por sí, como cualquier otra lista recopilatoria, nos basaremos en los comandos Git que hemos ido utilizando hasta ahora y que podían ser quizá un poco difíciles de recordar. ¡Vamos allá!
- El más que frecuente
git statusse puede simplificar únicamente con ungst. - Para añadir el archivo con nombre foo al stage para ser incluido en el próximo commit tenemos el comando
git add fooy su alias es tan fácil comoga foo. - Y si queríamos incluir todos los archivos a la vez usábamos el comando
git add ., pues como es fácil de suponer su alias esgaa(la última a es de all). - Cuando queremos hacer un commit con un mensaje utilizamos el comando
git commit -m "mensaje de commit", su simplificación esgcmsg "mensaje de commit". - Cuando modificamos localmente un archivo pero hemos metido la pata y queremos recuperar la última versión que tiene Git del archivo foo utilizamos el comando
git checkout -- foo, y con los alias podemos utilizar tambiéngco -- foo. - Y si nos hemos dado cuenta tarde, cuando ya hemos incluido el archivo en la cola de stage para incluirlo en el próximo commit con Git teníamos el comando
git reset HEAD foo, y haciendo uso de estos alias tenemos también la posibilidad de usargrh foo. - Para crear la rama foo que deriva de bar en Git hacíamos uso del comanfo
git checkout -b foo bary con estos alias también podemos utilizar el comandogcb foo bar. - Si quisiéramos cambiar a la rama foo en Git utilizaríamos el comanfo
git checkout fooy con los alias podemos simplificarlo aún más utilizando sólogco foo. - Y como las ramas master y develop son tan frecuentemente utilizadas (más adelante veremos esto en las guías de estilo) existen también unos alias para poder hacer checkout directamente a estas ramas:
gcmygcdrespectivamente. - Si queremos hacer un merge de la rama foo en Git escribimos
git merge fooy con estos alias podemos escribirgm fooúnicamente. - Y si finalmente queremos borrar la rama en Git basta con un
git branch -d foopero con los alias simplificamos agbd foo. - Cuando tenemos un remoto lo más habitual es que se llame origin, así que si queremos hacer un push de la rama master escribiríamos el comando
git push origin masterpero con los alias basta con que previamente estemos situados en la rama master y escribamosggpushoggpy automáticamente pasa como parámetro la rama en la que nos encontremos en ese momento, que suele ser habitual que sea la rama de la que queramos hacer push. - Para hacer pull es exactamente lo mismo pero utilizando el comando
ggpulloggl.
Por último, si queremos utilizar algún comando que no disponga de alias, o que lo desconozcamos, siempre podemos abreviar un poco ya que el comando g es un alias del comando git, así pues podríamos utilizar g tag v0.1 HEAD para añadir el tag de la versión 0.1 al último commit realizado.
Como habréis visto, si nos limitamos al uso de alias ahorramos un montón de tiempo, lo cual siempre es una ventaja.
Y como siempre decimos en SargantanaCode: ¡nunca dejéis de programar!
¿Sed de conocimiento?
Este artículo forma parte del curso Domina Git desde cero. El anterior artículo de este curso es Lanzando nuevas versiones de nuestros proyectos mediante los tags de Git.