Volver a actualizaciones
Nuevo releaseSep 7, 2026

git-dumper v1.0.9

Una herramienta para volcar un repositorio git de un sitio web

Compartir

git-dumper

Una herramienta para volcar un repositorio git de un sitio web.

Instalación

Se puede instalar fácilmente con pip:

pip install git-dumper

Uso

usage: git-dumper [options] URL DIR

Dump a git repository from a website.

positional arguments:
  URL                   url
  DIR                   output directory

optional arguments:
  -h, --help            muestra este mensaje de ayuda y sale
  --proxy PROXY         usa el proxy especificado
  -j JOBS, --jobs JOBS  número de solicitudes simultáneas
  -r RETRY, --retry RETRY
                        número de intentos de solicitud antes de rendirse
  -t TIMEOUT, --timeout TIMEOUT
                        tiempo máximo en segundos antes de rendirse
  -u USER_AGENT, --user-agent USER_AGENT
                        user-agent a usar para las solicitudes
  -H HEADER, --header HEADER
                        cabeceras http adicionales, ej. `NAME=VALUE`
  --client-cert-p12 CLIENT_CERT_P12
                        certificado de cliente en formato PKCS#12
  --client-cert-p12-password CLIENT_CERT_P12_PASSWORD
                        contraseña para el certificado de cliente
  -b BRANCH, --branch BRANCH
                        nombre de rama adicional para comprobar (repetible)

Ejemplo

git-dumper http://website.com/.git ~/website

Descargo de responsabilidad

¡Usa este software bajo tu propio riesgo!

Debes saber que si el repositorio que estás descargando está controlado por un atacante, esto podría provocar la ejecución remota de código en tu máquina.

Compilar desde el código fuente

Simplemente instala las dependencias con pip:

pip install -r requirements.txt

Luego, simplemente usa:

./git_dumper.py http://website.com/.git ~/website

¿Cómo funciona?

La herramienta primero comprobará si el listado de directorios está disponible. Si es así, simplemente descargará recursivamente el directorio .git (lo que harías con wget).

Si el listado de directorios no está disponible, usará varios métodos para encontrar tantos archivos como sea posible. Paso a paso, git-dumper:

  • Obtiene todos los archivos comunes (.gitignore, .git/HEAD, .git/index, etc.);
  • Encuentra tantas referencias como sea posible (como refs/heads/master, refs/remotes/origin/HEAD, etc.) analizando .git/HEAD, .git/logs/HEAD, .git/config, .git/packed-refs y así sucesivamente;
  • Encuentra tantos objetos (sha1) como sea posible analizando .git/packed-refs, .git/index, .git/refs/* y .git/logs/*;
  • Obtiene todos los objetos recursivamente, analizando cada commit para encontrar sus padres;
  • Ejecuta git checkout . para recuperar el árbol de trabajo actual

Categorías