10 KiB
AYUDA GIT
CONFIGURAR GIT. CONFIGURACION LOCAL
git config --global user.name "Tu Nombre"
git config --global user.email "[email protected]"
| Comando | Acción |
|---|---|
| git config --global init.defaultBranch main | Establecer main como rama por defecto en configuracion global |
| git config --global --list | muestra datos configuracion global del repositorio |
| git config --list | Muestra datos configuración global (usuario, email, etc.) |
| git config --global core.autocrlf true | Uso en windows |
| git config --global core.autocrlf input | Uso en Mac/Linux |
CREAR REPOSITORIO EN GITHUB Inicia sesión en tu cuenta de GitHub. Haz clic en el botón "New" en la esquina superior derecha. Asigna un nombre a tu repositorio, elige la visibilidad (público o privado) y haz clic en "Create repository". cd ruta/de/tu/carpeta GitHub, por defecto, crea repositorios con la rama main
COMANDO GIT BASICOS
| Comando | Acción |
|---|---|
| Git init | Inicia un repositorio, crea una carpeta. oculta .git donde Git almacenará los cambios. |
| git add . | Agrega los archivos al área de preparación (staging): |
| git add nombre-del-archivo | agregar uno específico |
| git commit -m "mensanje descriptivo" | Guardar los cambios, registra los cambios en el historial de Git |
| git commit -am "mensaje" | Agrega archivos modificados y hace el commit (no para archivos nuevos) |
| git rm --cached archivo.txt | quitar archivo del indice para evitar seguimiento por git |
| git add . && git commit -m "mensaje" | Agrega archivo nuevos y hace commit |
| git log | Ver el Historial de Cambios, lista de commits |
| git log --oneline --graph --all | resumen compacto |
| git reset nombre_archivo / git checkout -- nombre_archivo | Deshacer los cambios, quitar archivos del area de preparacion. (antes de commit) |
| git reset --soft HEAD~1 | Deshacer el último commit |
| git reset --hard HEAD~1 | Eliminar completamente el último commit |
| git rm archivo | Eliminar del stage |
| git count-objects -vH | Saber cuanto pesa el historial |
| git mv | Cambiar nombre del stage |
| .gitignore | Ignorar archivos para seguimiento de Git |
| Crear archivo .gitignore / editar archivos a ignorar | |
| git add .gitignore / git commit -m "commit git ignore" |
PULL / PUSH
| Comando | Acción |
|---|---|
| Git init | Inicia un repositorio, crea una carpeta. |
| git push -u origin main | Subir los archivos a repositorio remoto (GitHub, gitlab, etc, confirmar que se esta en la rama en git) |
| git push -u origin master | subir archivos si la rama local se llama master |
| git push -u origin master:main | Sube a remoto a la rama main el repositorio local de rama master |
| git push --force origin main | Sobreescribe el remoto, enviando los cambios del local cuando dice que el remoto no coincide. |
| git status status-s | Ver el Estado del Repositorio / -s info resumida |
| git pull origin main --rebase | Sincroniza el local con el remoto (cambios en remoto que no hay que perder) |
| git push --force origin main | Sobreescribir repo remoto (el remoto tiene cambios que no me interesan y se pueden sobreescribir con la version de local) |
REPOSITORIOS
| Comando | Acción |
|---|---|
| git remote add origin NUEVA_URL | Agregar un nuevo remoto |
| git remote -v | Ver el remoto actual |
| git remote set-url origin NUEVA_URL | Cambiar el remoto |
| git remote remove origin | Eliminar el remoto |
| git remote add origin https://github.com/tu-usuario/tu-repositorio.git | Conectar el repositorio local con GitHub git remote add origin URL_DEL_REPO Añadir repositorio remoto (github, gitlab, etc...) |
| git pull origin main | Obtener Cambios del Repositorio Remoto (actualizar el codigo) |
| git pull --rebase origin main | Trae cambios (archivos) del remoto sin afectar al local. Despues add y commit. |
| git clone URL_DEL_REPO | Clonar un Repositorio |
RAMAS
| Comando | Acción |
|---|---|
| git branch | Agregar un nuevo remoto |
| git branch -a | Ver todas las ramas, incluyendo las remotas |
| git branch nueva-rama | Crear una nueva rama (no te situa en la rama creada) |
| git checkout nueva-rama | Cambiar a una rama |
| git switch nueva-rama | Cambiar a una rama (nuevo sistema recomendado) |
| git checkout -b nueva-rama | Crear rama y cambiar a ella automaticamente |
| git switch -c nueva-rama | Crear rama e ir a ella, nuevo comando |
| git merge rama | Fusionar rama, integrar cambios (previamente situarse en la rama main/master) |
| Si hay conflictos, Git te pedirá que los resuelvas manualmente antes de confirmar la fusión. | |
| git branch -d nueva-rama | Eliminar una rama local (usa -D si la rama no ha sido fusionada y quieres forzar su eliminación). |
| git push origin --delete rama | Eliminar una rama remota: |
| git fetch | Trae rama a tu repositorio local git checkout nombre-de-la-rama |
| git pull origin nombre-de-la-rama | Trae rama a tu repositorio local con un solo comando |
| git branch -m master main | cambiar nombre de rama (cambia nombre rama master a main, para GitHub) |
| git branch -d nombre-de-la-rama | Eliminar una rama localmente |
| git branch -m master main | Renombrar rama máster a main |
Resumen Usa ramas para desarrollar nuevas funciones sin afectar main. Cambia entre ramas con git switch o git checkout. Fusiona cambios con git merge. Borra ramas innecesarias con git branch -d. Sube ramas con git push -u origin rama.
.gitignore
# Archivo concreto
.env
# Todos los archivos .log
*.log
# Carpeta completa
node_modules/
# Carpeta de compilación
dist/
# Archivos temporales
*.tmp
GITHUB TOKEN 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
clonar un repositorio privado utilizando el toquen git clone https://@github.com/codibytex/python_scripts.git
ejemplo practico con el token generado: git clone https://[email protected]/codibytex/python_scripts.git
https://[email protected]/codibytex/detenpol.git
echo "# fusionar_comprimir_pdf" >> README.md git init git add README.md git commit -m "first commit" git branch -M main git remote add origin https://github.com/codibytex/fusionar_comprimir_pdf.git git push -u origin main
AYUDA GITEA
Gitea en docker
backup
docker exec -it gitea bash
gitea dump
Esto generará un archivo tipo:
gitea-dump-YYYY-MM-DD.zip
Normalmente se guarda en:
/data
Copia el backup al host
docker cp gitea:/data/gitea-dump-YYYY-MM-DD.zip .
Version 2 (funciona)
Borrar backup anterior dentro de gitea
docker exec -u 1000:1000 gitea rm -f /data/git/gitea-backup.zip
Comprueba:
docker exec gitea ls -lh /data/git/gitea-backup.zip
Debería responder que no existe.
Ahora nuevo backup:
docker exec -u 1000:1000 gitea
gitea dump --file /data/git/gitea-backup.zip
Comprueba que se ha generado:
docker exec gitea ls -lh /data/git/gitea-backup.zip
Copiar el backup al host:
docker cp gitea:/data/git/gitea-backup.zip ./gitea-backup.zip
Comprueba cuántos repositorios tiene realmente el dump
unzip -l gitea-backup.zip | grep '.git/'
Extraer el zip en una carpeta
unzip gitea-backup.zip -d nombrecarpeta
En un gitea dump, los repositorios normalmente están dentro del ZIP bajo una estructura parecida a:
gitea-dump-2026-08-04.zip ├── app.ini ├── custom/ ├── data/ ├── log/ ├── repos/ │ ├── usuario1/ │ │ ├── repo1.git/ │ │ └── repo2.git/ │ └── usuario2/ │ └── proyecto.git/ └── ...
Si el repositorio estaba, por ejemplo, en: repos/pepe/web.git/ haz: git clone repos/pepe/web.git web
script sh
#!/bin/bash
BACKUP="gitea-backup-$(date +%Y-%m-%d).zip"
docker exec -u 1000:1000 gitea
gitea dump --file "/data/git/$BACKUP"
docker cp "gitea:/data/git/$BACKUP" "./$BACKUP"
Restore
1️⃣ Copia el dump al contenedor (si no está ya dentro)
Si el ZIP está en el host:
docker cp gitea-dump-YYYY-MM-DD.zip gitea:/data/
2️⃣ Detén el contenedor de Gitea
docker stop gitea
⚠️ Importante: no restaures con Gitea corriendo.
3️⃣ Entra al contenedor
docker exec -it gitea bash
4️⃣ Ejecuta la restauración
gitea restore --file /data/gitea-dump-YYYY-MM-DD.zip
Esto:
-
Restaura repositorios
-
Restaura base de datos
-
Restaura configuración
-
Restaura issues, PRs, usuarios, etc.
5️⃣ Sal y arranca el contenedor
exit docker start gitea
Gitea en volumen docker.
Copiar directamente los volúmenes (rápida y eficaz)
Si usas docker-compose, normalmente tienes algo así:
volumes: - ./gitea:/data
docker compose down
tar czvf gitea_backup.tar.gz gitea/`
docker compose up -d
Copiar solo los repositorios (NO recomendado como único backup)
Los repositorios están en:
/data/git/repositories
Puedes copiarlos así:
docker cp gitea:/data/git/repositories ./repos_backup
Gitea snap
backup
sudo gitea dump Esto genera un archivo como:
gitea-dump-YYYY-MM-DD.zip Por defecto se guarda en: /var/snap/gitea/common
Restaurar
1️⃣ Detén Gitea:
sudo snap stop gitea
2️⃣ Restaura:
sudo gitea restore --file gitea-dump-YYYY-MM-DD.zip
3️⃣ Arranca Gitea:
sudo snap start gitea
Backup automático con cron (recomendado) Snap
Ejemplo de backup diario a las 2:00 AM:
sudo crontab -e
Añade:
0 2 * * * gitea dump --file /var/backups/gitea/gitea-$(date +\%F).zip
(asegúrate de crear antes la carpeta /var/backups/gitea)