Acelera tu Terminal: Atajos de PowerShell Esenciales
Abdiel Martinez |Atajos de PowerShell para gestión de ramas Git, scripts Yarn, clonado SSH. Tips de terminal para desarrolladores Windows.
He notado como algunos desarrolladores con mucha experiencia suelen tiener un arsenal de atajos y alias configurados en sus terminales. Después de todo, cuando pasas horas escribiendo los mismos comandos una y otra vez (git pull, git checkout develop, yarn dev...), cada pulsación de tecla que te ahorras es una pequeña victoria. 🏆
Sin embargo, la mayoría de las guías y configuraciones que encontraba estaban pensadas para entornos de Linux o Mac con Zsh
o Bash
. Como usuario de Windows que uso PowerShell
como mi terminal principal, sentía que ya me hacían faltaba algunos atajos. Así que decidí crear mi propia colección de atajos, y compartir mi granito de arena para todos aquellos que, como yo, desarrollan en el ecosistema de Windows.
¿Cómo empezar? La magia del Perfil de PowerShell
Para que estos atajos estén siempre disponibles, debemos agregarlos a nuestro archivo de perfil de PowerShell
. Este es un script que se ejecuta cada vez que iniciamos una nueva sesión de terminal.
Para abrirlo, simplemente ejecuta este comando en tu terminal:
$ code $PROFILE
(Asumiendo que tienes
VSCode
instalado y configurado en tu PATH. Si no, puedes usarnotepad $PROFILE
).
Una vez que tengas el archivo abierto, puedes pegar las funciones y alias que te parezcan útiles. En este artículo repasare solo algunos de los atajos más destacados. Te invito a que revises el repositorio completo con todos los alias y sus implementaciones en: https://github.com/Anb98/powershell-comand-alias
Mis Atajos Favoritos para Git
Git es la herramienta que más uso en mi día a día, así que aquí es donde más he invertido tiempo. No voy a listarlos todos los alias que he creado, pero sí quiero destacar dos que me encantan.
gsync: Sincronizando ramas sin dolor
¿Cuántas veces te ha pasado esto? Estás trabajando en una feature-branch y necesitas traer los últimos cambios de develop. El proceso manual es tedioso:
git stash
(si tienes cambios)git checkout develop
git pull
git checkout feature-branch
git merge develop
git stash pop
Con el alias gsync
, todo ese ritual se reduce a un solo comando. Simplemente lo ejecutas desde tu rama de trabajo y él se encarga de todo el proceso.
# Estando en la rama 'my-feature'
$ gsync
¡Y listo! Tu rama ahora tiene lo último de develop. 🤩
gprune: Manteniendo tu repositorio limpio
Después de varias semanas en un proyecto, mi lista de ramas locales parece un cementerio de features olvidadas. Recordar cuáles ya se han fusionado y borrarlas una por una es un fastidio.
Aquí es donde entra gprune
. Este comando elimina todas las ramas locales que ya han sido fusionadas y que no sean main
, master
, develop
o staging
. Es como pasar la aspiradora por tu repositorio y dejarlo limpio de ramas obsoletas. Además, no tienes que preocuparte por perder tus avances: el comando no se ejecutará en tu rama actual, asegurando que tu trabajo esté a salvo.
# Ejecutas esto y ves cómo desaparecen decenas de ramas viejas
$ gprune
Atajos para Infisical
Como mencioné en mi artículo anterior sobre cómo dejé de perder mis .env, utilizo Infisical para gestionar mis variables de entorno de forma segura y centralizada. Para no tener que escribir infisical run \--
cada vez, creé estos atajos:
irun
: Ejecuta cualquier comando con las variables de Infisical. Ejemplo:irun yarn dev
que seria equivalente a escribir:infisical run -- yarn dev
.irunp
eiruns
: Hacen lo mismo pero para los entornos de prod y staging respectivamente que seria como escribir:infisical run --env=prod --
yinfisical run --env=staging --
.
Te invito a leer el artículo si quieres saber más sobre cómo Infisical puede salvarte de más de un dolor de cabeza. 🤫
Un pequeño empujón para Yarn
Estos son simples pero efectivos. ¿Para qué escribir yarn dev
o yarn start
cuando puedes escribir yd
o ys
? Son pequeños ahorros que, sumados, marcan la diferencia.
Un Vistazo a la Clonación con Múltiples Cuentas
En mi caso, he configurado mi computadora con dos llaves SSH
distintas para interactuar con GitHub: una para mi cuenta del trabajo y otra para mis repositorios personales. Esto me permite mantener mis identidades completamente separadas.
Para facilitar esto, creé los alias gclonew
(Git Clone Work) y gclonep
(Git Clone Personal). Asi podría por ejemplo ejecutar:
$ gclonep Anb98/blog
De esta manera estaría utilizando la clave SSH correcta para cada cuenta, evitando cualquier conflicto.
¿Y cómo recuerdo todo esto? lsa al rescate
Al principio, puede ser difícil recordar todos los nuevos alias. Por eso, el último comando que creé fue lsa
(por List Aliases). Al ejecutarlo, te muestra una tabla con todos los atajos personalizados que has definido, su comando original y una breve descripción. ¡Tu propia hoja de trucos integrada en la terminal! 📜
$ lsa
📜 Custom Aliases Defined in this Profile:
Alias Original Command Description
----- ---------------- -----------
gpl git pull Downloads the latest changes from the remote repository.
gpsh git push Pushes your local commits to the remote repository.
gst git status Displays the current status of the repository.
gss git stash Temporarily saves changes that are not ready for a commit.
gsp git stash pop Applies the latest "stash" and removes it from the list.
gch git checkout <branch> Switches to the specified branch.
gcd git checkout develop Quickly switches to the `develop` branch.
gnb git checkout -b <branch> Creates and switches to a new branch.
gsync Function Synchronizes the current branch with the latest changes from `develop`.
gprune Function Deletes all local branches except protected ones.
irun infisical run -- <command> Runs a command using Infisical environment variables.
irunp infisical run --env=prod -- <command> Runs a command with Infisical production environment.
iruns infisical run --env=staging -- <command> Runs a command with Infisical staging environment.
y yarn Base alias for yarn. Allows `y add <package>`.
yd yarn dev Starts the development server.
ys yarn start Runs the project `start` script.
gclonew git clone workgit:<repo> Clones a repository from the work remote.
gclonep git clone personalgit:<repo> Clones a repository from the personal remote.
lsa Function Displays this list of custom aliases.
Espero que esta pequeña guía te haya dado algunas ideas para empezar a personalizar tu propio entorno de PowerShell
. La verdadera belleza de esto es que puedes adaptarlo 100% a tus necesidades.
Y ahora te pregunto a ti, ¿qué otros atajos se te ocurren o cuáles usas en tu día a día que consideres imprescindibles? Compártelo en los comentarios, ¡me encantaría leer tus ideas!
Articulos relacionados
No más .env perdidos: Una solución self-hosted
Mi experiencia usando Infisical para gestionar variables de entorno: instalación, configuración y uso real en proyectos JavaScript
Descubriendo las Funciones Generadoras en JavaScript
¿Te gustaría saber cómo JavaScript puede pausar y reanudar la ejecución de tu código? Acompáñame a descubrirlo