Cómo descargar un repositorio de GitHub como .zip usando la línea de comando

9

Estoy tratando de descargar un archivo .zip de GitHub usando la línea de comando en Ubuntu. Estoy usando el wgetcomando para ello en un sistema remoto de Ubuntu.

Ejecuto wget <link>donde <link>está el enlace de la barra de direcciones del archivo que quiero descargar. Se termina con archive.zip?ref=master.

Ahora, cuando estoy ejecutando el comando, está descargando un archivo con text/htmltipo y no el .ziparchivo que quiero.

Por favor, dígame cómo obtener el enlace como parámetro de wget. En este momento, solo estoy copiando la dirección del enlace del botón (usando el botón derecho) y escribiendo eso como un wgetparámetro.

UbuntuCoder
fuente
¿Puedes decir el comando exacto que estás pegando?
kashish
1
¿Tu URL realmente termina con .zip?
kashish
@kashish No, la URL no termina con .zip. Estoy tratando de descargar un proyecto desde github y tiene un botón de descarga que ofrece zip y otras opciones. Entonces, estoy intentando desde allí. termina con archive.zip?ref=master
UbuntuCoder
Para descargar un proyecto github, puede usargit clone <projectlink.git>
kashish
1
Si no me equivoco, es posible descargar un repositorio como archivo Zip usando la siguiente dirección:https://github.com/{user}/{repo}/archive/{branch}.zip
Alex Chermenin

Respuestas:

11

Por los comentarios que vi, en realidad hablas de GitHub.

No funcionará así porque:

La descarga de un proyecto en GitHub hace que el servidor de GitHub primero empaquete su proyecto como zip y luego lo reenvíe a un enlace temporal donde obtiene su zip.

este enlace solo funcionará durante un tiempo determinado y GitHub eliminará su archivo zip de sus servidores.

Entonces, lo que obtienes con wget es solo la página html que te reenviará tan pronto como se genere tu archivo zip.

Como uso sugerido

git clone http://github.com/<yourRepoLink> <optional local path where to store>

para descargar el repositorio de git ... Si por alguna razón (por ejemplo, para transferirlo a otros) lo necesita explícitamente como zip, aún podría empacarlo una vez que finalice la clonación ...

derHugo
fuente
2
Después de la clonación, git archive -o output.zipsi todavía se necesita un archivo zip
Ferrybig
git clonefunciona, naturalmente, pero hay casos en los que no tiene sentido instalar git solo para descargar un repositorio.
Robin Métral
0

Funciona si usa la URL correcta. Para un repositorio de GitHub, hay un zip en https://github.com/user/repo/archive/master.zip, por lo que puede descargarlo con:

wget https://github.com/user/repo/archive/master.zip

Esto descarga la masterrama de user/repo. Puede reemplazar el maestro con cualquier otra rama o un hash de confirmación.

Esto es similar a usar cURL con:

curl -L https://github.com/user/repo/archive/master.zip

El -Lindicador de cURL sigue las redirecciones: es un valor predeterminado en wget.

Tenga en cuenta que también puede descargar un tarball con:

wget https://github.com/user/repo/archive/master.tar.gz
Robin Métral
fuente