Descargar archivos individuales desde GitHub

Resuelto Radek Simko asked hace 13 años • 37 respuestas

¿Cuáles son algunos consejos para descargar un solo archivo desde un repositorio de GitHub?

No quiero la URL para mostrar el archivo sin formato; en el caso de los binarios, no hay nada.

http://support.github.com/discussions/feature-requests/41-download-single-file

¿Es posible utilizar GitHub como "servidor de descargas"?

Si decidimos cambiar a Google Code, ¿se presenta allí la funcionalidad mencionada?

¿O existe algún hosting y VCS gratuitos para proyectos de código abierto?

Radek Simko avatar Jan 05 '11 20:01 Radek Simko
Aceptado
  1. Vaya al archivo que desea descargar.
  2. Haga clic en él para ver el contenido dentro de la interfaz de usuario de GitHub.
  3. En la parte superior derecha, haz clic derecho en el Rawbotón.
  4. Guardar como...
bearfriend avatar Nov 27 '2012 21:11 bearfriend

Git no admite la descarga de partes del repositorio. Tienes que descargarlo todo. Pero deberías poder hacer esto con GitHub.

Cuando ves un archivo, tiene un enlace a la versión "sin formato". La URL se construye así.

https://raw.githubusercontent.com/user/repository/branch/filename

Al completar los espacios en blanco en la URL, puede usar Wget o cURL (con la -Lopción, ver más abajo) o lo que sea para descargar un solo archivo. Nuevamente, al hacer esto no obtendrás ninguna de las funciones de control de versiones utilizadas por Git.

Actualización: noté que mencionaste que esto no funciona con archivos binarios. Probablemente no deberías usar archivos binarios en tu repositorio de Git, pero GitHub tiene una sección de descarga para cada repositorio que puedes usar para cargar archivos. Si necesita más de un binario, puede utilizar un archivo .zip. La URL para descargar un archivo cargado es:

https://github.com/downloads/user/repository/filename

Tenga en cuenta que las URL proporcionadas anteriormente, desde los enlaces de github.com, redireccionarán a raw.githubusercontent.com. No debe usar directamente la URL proporcionada por esta redirección HTTP 302 porque, según RFC 2616 : "Dado que la redirección puede modificarse en ocasiones, el cliente DEBE continuar usando el URI de solicitud para futuras solicitudes".

jonescb avatar Jan 05 '2011 14:01 jonescb

Puede utilizar la API V3 para obtener un archivo sin formato como este (necesitará un token de OAuth):

curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: 
application/vnd.github.v3.raw' -O -L 
https://api.github.com/repos/*owner*/*repo*/contents/*path*

Todo esto tiene que ir en una sola línea. La -Oopción guarda el archivo en el directorio actual. Puede utilizar -o filenamepara especificar un nombre de archivo diferente.

Para obtener el token de OAuth, sigue estas instrucciones .

También he escrito esto como una esencia .

thomasfuchs avatar Mar 11 '2014 00:03 thomasfuchs

Según esta esencia , puedes usar wget o cURL:

  1. Haga clic en el nombre del archivo en un repositorio de GitHub.
  2. Haga clic en Raw para mostrar el contenido del archivo.
  3. Copie la URL en su navegador.
  4. En la línea de comando, ejecute:

    • wget --no-check-certificate --content-disposition https://URL-from-step3/
    • curl -LJO https://URL-from-step3/

    Uno más: en RHEL7.6, ejecute lo siguiente:

    • wget https://URL-from-step3/ --output-document=FILE_NAME
Ted Cox avatar Aug 04 '2017 19:08 Ted Cox

Puedes usar curlde esta manera:

curl -OL https://raw.githubusercontent.com/<username>/<repo-name>/<branch-name>/path/to/file

Osignifica que curl descarga el contenido
Lsignifica que curl sigue la redirección

Mark avatar Apr 14 '2018 18:04 Mark