Files
guias_informatica/Guia_git_gitea.md
T
2026-08-28 20:27:37 +02:00

10 KiB

AYUDA GIT

https://git-scm.com/


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 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.


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)