# 🚀 git subir Comando personalizado para automatizar el push de cambios a un repositorio Gitea. Incluye autenticación segura, commits interactivos, resolución de conflictos y configuración automatizada. --- ## 📂 Archivos incluidos ### `instalar-subir.sh` Script de instalación que: - Verifica si `openssl` está instalado (y lo instala si falta). - Solicita credenciales de Gitea: usuario, token/contraseña y URL base de la API. - Verifica las credenciales contra la API de Gitea. - Permite guardar las credenciales cifradas con `openssl` o en texto plano. - Crea el script principal `git-subir.sh` en `~/.scripts/`. - Genera un alias global `git subir` disponible en todo el sistema. ### `git-subir.sh` Script principal que: - Carga las credenciales (descifrándolas si están cifradas). - Detecta cambios sin commitear y ofrece hacer commit automático. - Realiza `git push` con autenticación embebida. - Si el push falla, intenta `git pull --allow-unrelated-histories`. - Detecta conflictos y ofrece hacer merge automático. - Muestra mensajes claros y estructurados para guiar al usuario. ### `desinstalar-subir.sh` Script de desinstalación que: - Elimina el alias global `git subir`. - Borra el script `git-subir.sh`. - Elimina las credenciales guardadas (cifradas o no). --- ## 🔐 Seguridad - Las credenciales pueden guardarse cifradas con `openssl` usando una contraseña definida por el usuario. - El script `git-subir.sh` descifra las credenciales en tiempo de ejecución y las borra inmediatamente después de usarlas. - Si se elige guardar sin cifrar, se almacenan en `~/.scripts/.env` con permisos restringidos (`chmod 600`). --- ## 📦 Requisitos - `openssl` (se instala automáticamente si falta) - Acceso a una instancia de Gitea con API habilitada - Permisos de escritura en `/usr/local/bin` para crear el alias global --- ## 🧪 Instalación ```bash chmod +x desinstalar-subir.sh ./instalar-subir.sh Durante la instalación se te pedirá: Usuario de Gitea Token o contraseña URL base de la API (ej: https://gitea.midominio.org) Si querés guardar las credenciales cifradas Al finalizar, podrás usar el comando: bash git subir 🧹 Desinstalación bash chmod +x ./desinstalar-subir.sh ./desinstalar-subir.sh Esto elimina: El alias git subir El script git-subir.sh Las credenciales guardadas 🔄 Flujo de uso Ejecutás git subir. El script carga las credenciales (descifradas si están cifradas). Detecta si hay cambios sin commitear: Si hay, ofrece hacer commit automático. Intenta hacer git push al repositorio remoto con autenticación embebida. Si el push falla: Intenta git pull --allow-unrelated-histories. Si hay conflictos, los muestra y ofrece hacer merge automático. Si todo sale bien, muestra 🎉 Push completado. 💡 Ejemplo de uso bash git subir Si hay cambios sin commitear, te preguntará si querés hacer commit. Si hay conflictos, te preguntará si querés hacer merge automático. Si todo está limpio, sube los cambios directamente. 🧠 Autor Nahuel Baglietto Scripts diseñados para mejorar la experiencia de trabajo con Git y Gitea, priorizando seguridad, automatización y facilidad de uso. 🛡️ Licencia Este proyecto puede ser usado, modificado y distribuido libremente bajo los términos que defina su autor.