Descargar archivos individuales desde GitHub
¿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?
- Vaya al archivo que desea descargar.
- Haga clic en él para ver el contenido dentro de la interfaz de usuario de GitHub.
- En la parte superior derecha, haz clic derecho en el
Raw
botón. - Guardar como...
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 -L
opció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".
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 -O
opción guarda el archivo en el directorio actual. Puede utilizar -o filename
para especificar un nombre de archivo diferente.
Para obtener el token de OAuth, sigue estas instrucciones .
También he escrito esto como una esencia .
Según esta esencia , puedes usar wget o cURL:
- Haga clic en el nombre del archivo en un repositorio de GitHub.
- Haga clic en Raw para mostrar el contenido del archivo.
- Copie la URL en su navegador.
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
Puedes usar curl
de esta manera:
curl -OL https://raw.githubusercontent.com/<username>/<repo-name>/<branch-name>/path/to/file
O
significa que curl descarga el contenido
L
significa que curl sigue la redirección