Angela Sofíá Osorio
Tiempo de lectura 5 minutes
Fecha de publicación
Configurar múltiples identidades Git no debería requerir un máster en administración de sistemas. Sin embargo, todos hemos hecho un commit corporativo con el correo personal por olvidar editar el .git/config local.
Escribí esta colección de scripts para mi flujo de trabajo diario porque me niego a perder tiempo configurando hosts SSH o levantando bases de datos locales a mano. Mi máquina debe trabajar para mí, no al revés.
El núcleo de mi sistema explota funciones nativas de Bash y directivas condicionales de Git. Te explico exactamente qué hacen mis herramientas por debajo y cómo puedes integrarlas en tu propia terminal.
Bootstrap de Entorno Binario y Configuración PATH
Detesto las herramientas que ensucian el sistema operativo con dependencias globales. Mi suite vive encapsulada en ~/.local/bin, un estándar de Unix perfecto para herramientas de usuario.
set-scripts: Inyección de Variables en el PATH
Una vez clonado el repositorio, este orquestador inicializa el entorno. Escanea el directorio, aplica permisos de ejecución (chmod +x) e identifica tu shell actual interrogando a la variable $SHELL.
Si tu PATH no incluye el directorio local, el script inyecta el export correspondiente en tu ~/.bashrc o ~/.zshrc. Recargas la configuración y los comandos quedan disponibles globalmente sin requerir privilegios de superusuario.
Gestión Multi-Cuenta con Git includeIf y SSH Alias
Manejar diferentes perfiles de GitHub en el mismo equipo suele resolverse con scripts pesados o herramientas de terceros. Yo opté por una arquitectura basada en rutas absolutas y condicionales nativos.
setup-git-users: Generación y Aislamiento de Git
Este script inicializa el entorno de autenticación. Genera claves SSH con cifrado ed25519 y construye el archivo ~/.ssh/config definiendo alias de host únicos.
Para evitar conflictos de identidad, inyecta la directiva [includeIf "gitdir:~/ruta/"] en la configuración global de Git. Cuando mi terminal entra en el directorio de trabajo, Git lee automáticamente un subarchivo de configuración y cambia mi identidad sin que yo intervenga.
add-git-user: Inyección de Claves SSH Adicionales
Cuando necesito integrar a un cliente freelance, uso esta herramienta. Valida cadenas de texto mediante expresiones regulares para asegurar un formato de correo válido y verifica conflictos en el directorio SSH.
Genera el par de claves, anexa un nuevo bloque al host SSH y registra la nueva ruta condicional en Git. Todo el proceso es quirúrgico y no corrompe la configuración previa.
Intercepción de URLs SSH y Manejo de Repositorios
Clonar proyectos con múltiples cuentas obliga a reescribir manualmente el dominio de GitHub por el alias SSH. Es un proceso mecánico propenso a errores tipográficos.
clone-repo y clone-project: Reescritura de URL
Estos scripts interceptan la URL estándar de clonación. Mediante la sustitución de parámetros nativa de Bash, reemplazan github.com por el alias SSH que yo seleccione del listado en memoria.
Si el repositorio es masivo, clone-project añade la bandera --single-branch de Git para descargar un historial mínimo y optimizar los tiempos de red.
add-repo y push-repo: Resolución de Historiales
Inicializar un proyecto local y conectarlo a un repositorio vacío en GitHub es trabajo de add-repo. Ejecuta la secuencia completa de commits, cambio de rama a main y asignación del origen remoto.
Si la interfaz web de GitHub inicializó el remoto con un README, push-repo asume el control. Descarga y fusiona los historiales dispares usando --allow-unrelated-histories antes de realizar el push inicial, evitando el bloqueo clásico de Git.
Sincronización Remota y Control de Ramas Locales
Escribir el nombre completo de una rama cada vez que necesito actualizar el código local es una pérdida de tiempo evitable.
new-branch, gpull y gpush: Wrappers de Comando
Son atajos lógicos. new-branch exige un parámetro de entrada validado antes de crear el checkout.
Por su parte, gpull y gpush utilizan git rev-parse --abbrev-ref HEAD para leer la rama activa directamente desde la memoria de Git. Empujan o traen cambios del origen remoto sin que yo tenga que teclear la ruta destino.

Despliegue Local de WordPress y Purgado de Sistema
Los contenedores de Docker son fantásticos, pero a veces levantar una infraestructura completa para editar un plugin de WordPress es matar moscas a cañonazos.
install-wordpress: Automatización de Servidor PHP
Este script despliega un entorno de desarrollo completo. Invoca utilidades de red para descargar el núcleo, interactúa con el demonio de MariaDB para estructurar la base de datos y consume la API oficial para inyectar los salts de seguridad en el archivo wp-config.
Finaliza escaneando los sockets del sistema con ss -tlnp para localizar el primer puerto TCP disponible y levanta el servidor web integrado de PHP. Todo en menos de diez segundos.
clean-system: Purgado de Caché y Monitor de PIDs
Un disco duro al límite rompe cualquier flujo de compilación. Este script ejecuta comandos de limpieza sobre el gestor de paquetes de Debian, purga directorios de miniaturas y vacía la papelera.
Incluye un módulo secundario que lista los procesos activos ordenados por consumo de CPU. Me permite enviar señales de terminación a los demonios que se quedan colgados devorando RAM sin tener que abrir un gestor de tareas gráfico.
Revisa el repositorio, audita el código fuente y adapta los módulos a tu propia infraestructura. Cuanto menos tiempo dediques a la configuración, más tiempo tendrás para escribir código real. Cuéntame en los comentarios qué rutinas de Bash consideras imprescindibles en tu máquina.
¿Quieres aprender bash scripting?
Estoy lanzando un curso para miembros del canal y las primeras clases están publica 🦝❤️
Contents