120 lines
3.2 KiB
Markdown
120 lines
3.2 KiB
Markdown
# 🚀 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.
|