Supongo que la mayoría de ustedes, desarrolladores, usan cualquier VCS , y espero que algunos de ustedes usen Git. ¿Tiene algún consejo o truco sobre cómo obtener una URL de descarga para un solo archivo en un repositorio?
No quiero la URL para mostrar el archivo sin formato; en caso de binarios es para nada.
http://support.github.com/discussions/feature-requests/41-download-single-file
¿Es posible usar GitHub como un "servidor de descarga"?
Si decidimos cambiar a Google Code, ¿se presenta aquí la funcionalidad mencionada?
¿O hay algún hosting gratuito y VCS para proyectos de código abierto?
git
version-control
github
Radek Simko
fuente
fuente
Respuestas:
Git no admite la descarga de partes del repositorio. Tienes que descargarlo todo. Pero deberías poder hacer esto con GitHub.
Cuando ve un archivo, tiene un enlace a la versión "en bruto". La URL se construye así
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. Una vez más, no obtendrá ninguna de las buenas funciones de control de versiones utilizadas por Git al hacer esto.Actualización: Noté que mencionas que esto no funciona para archivos binarios. Probablemente no debería usar archivos binarios en su repositorio de Git, pero GitHub tiene una sección de descarga para cada repositorio que puede usar para cargar archivos. Si necesita más de un binario, puede usar un archivo .zip. La URL para descargar un archivo cargado es:
Tenga en cuenta que las URL indicadas anteriormente, desde los enlaces en adelante
github.com
, redirigirán araw.githubusercontent.com
. No debe usar directamente la URL proporcionada por este redireccionamiento HTTP 302 porque, según RFC 2616 : "Dado que la redirección podría ser alterada ocasionalmente, el cliente DEBERÍA continuar utilizando el URI de solicitud para futuras solicitudes".fuente
raw
después del nombre del repositorio) ahora se redirige automáticamente al formato que menciona (nombre de hostraw.github.com
). En caso de duda, busque el archivo en cuestión en github.com y haga clic en el botón 'Sin procesar'.Raw
botón.fuente
Puede usar la API V3 para obtener un archivo sin formato como este (necesitará un token 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 línea. La
-O
opción guarda el archivo en el directorio actual. Puede usar-o filename
para especificar un nombre de archivo diferente.Para obtener el token OAuth, siga las instrucciones aquí: https://help.github.com/articles/creating-an-access-token-for-command-line-use
También he escrito esto como una esencia: https://gist.github.com/madrobby/9476733
fuente
Según esta esencia , puede usar wget o cURL:
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
fuente
wget
seguir la ruta sin procesar al archivo fuente C que quería después de ver el archivo en el repositorio de github y hacer clic en el botón Raw. Trabajé como un campeón con Raspbian en mi Raspberry Pi 3.GitHub Mate hace que la descarga de un solo archivo sea fácil, solo haga clic en el ícono para descargar, actualmente solo funciona en Chrome.
fuente
Puedes usar de
curl
esta manera:curl -OL https://raw.githubusercontent.com/<username>/<repo-name>/<branch-name>/path/to/file
O
significa que curl descarga el contenidoL
significa que curl sigue la redirecciónfuente
Esto ahora es posible en GitHub para cualquier archivo. Necesita traducir sus archivos para raw.github.com. Por ejemplo, si su archivo está en su repositorio en:
Usando wget puedes tomar el archivo sin procesar de:
Rails Composer es un gran ejemplo de esto.
fuente
Hay una extensión de Chrome llamada Enhanced Github
Agregará un botón de descarga directamente a la derecha de cada archivo.
fuente
Para seguir con lo que dijo thomasfuchs, pero para los usuarios de GitHub Enterprise, esto es lo que puede usar.
curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://your_domain/api/v3/repos/owner/repo/contents/path
También aquí está la documentación de la API https://developer.github.com/v3/repos/contents
fuente
https://your_domain/api/v3/repos/{owner}/my-repo/contents/x/y/z.txt
En caso de que quiera descargar un archivo zip de
github
usarwget
ver este sitio web para más detalles
fuente
Este método funciona para Windows ya que nunca he usado MAC, así que no sé cuáles son las teclas alternativas en MAC para las teclas que voy a mencionar a continuación.
Hablemos de los archivos CSV. SI desea descargar el archivo CSV:
Recuerde, debe presionar Alt y hacer clic izquierdo simultáneamente. Simplemente haciendo clic en el botón "Sin procesar" se abrirá el CSV en el navegador.
Espero que eso ayude.
fuente
Debes hacerlo con la
raw
URL de tu archivo.Por ejemplo, para descargar el archivo README de AFNetworking:
Como es un repositorio público, no necesita ninguna credencial. Tenga en cuenta el tipo de URL:
raw.githubusercontent.com/path/to/file
fuente
Resumen 2019
Hay una variedad de formas de manejar esto, dependiendo de qué tan grande sea el archivo, si necesita o no descargar carpetas además de los archivos, y si planea hacerlo manualmente o mediante programación.
Hay seis opciones resumidas a continuación. Y para aquellos que prefieren una explicación más práctica, he preparado un video de YouTube: descargue archivos y carpetas individuales de GitHub .
Además, publiqué una respuesta similar en StackOverflow para aquellos que necesitan descargar carpetas / directorios individuales de GitHub (en lugar de archivos).
1. Interfaz de usuario de GitHub
2. Menú contextual del navegador
3. Herramientas de terceros
https://github.com/babel/babel-eslint/blob/master/lib/parse.js
.4. Subversion
svn export https://github.com/babel/babel-eslint/trunk/lib/parse.js
5. cURL
curl -o parse.js https://raw.githubusercontent.com/babel/babel-eslint/master/lib/parse.js
.6. API de GitHub
https://api.github.com/repos/:owner/:repo/contents/:path
. Después de sustituir los marcadores de posición, un ejemplo de punto final es:https://api.github.com/repos/babel/babel-eslint/contents/lib/parse.js
. Esto le proporciona datos JSON para ese archivo, incluida una URL de descarga (la misma URL de descarga que utilizamos en el ejemplo cURL anterior). Sin embargo, este método no es tan útil para un solo archivo (es más probable que lo use para descargar una carpeta específica, como se detalla en la respuesta a la que he vinculado anteriormente).fuente
Característica de lanzamientos de GitHub
En lugar de un enlace para descargar un archivo específico dentro del repositorio, debe usar las versiones de GitHub función de para asociar los datos descargables (como los binarios compilados) con la versión etiquetada del código fuente utilizado para generar esos datos.
https://github.com/blog/1547-release-your-software
fuente
releases
2. Haga clic en el número de confirmación. 3. Busque el archivo que desea, haga clic en los tres puntos...
y seleccioneView file
4. ¡Haga clicView raw
para descargar el archivo!Esto definitivamente funcionaría. Al menos en Chrome. Haga clic derecho en el icono "Sin procesar" -> Guardar enlace como .
fuente
Para descargar un archivo desde un repositorio de Github, use el comando 'curl' con el enlace al archivo sin formato.
Agregue la opción --output seguido del nuevo nombre de archivo para descargar el archivo sin formato al archivo recién creado.
fuente
La página a la que enlazó responde a la primera pregunta.
GitHub también tiene una instalación de descarga para cosas como lanzamientos.
Google Code no tiene Git en absoluto.
GitHub, Google Code y SourceForge , solo para comenzar, son hosting gratuito. SourceForge aún podría hacer CVS .
fuente
Hace poco encontré un servicio llamado
gitzip
y también es de código abierto:sitio - http://kinolien.github.io/gitzip/
repo - https://github.com/KinoLien/gitzip
Visite el sitio anterior, ingrese el URL del repositorio o directorio, puede descargar archivos individuales o todo el directorio como un archivo zip.
fuente
jszip.min.js
de ese repositorio? troll faceAhora es posible descargar cualquier archivo o cualquier carpeta en particular dentro del repositorio usando esta extensión de Google Chrome:
GitZip para github: enlace: https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn
Uso:
fuente
Creo que la nueva
url
estructura es,raw.giturl
por ejemplo:archivo git
crudo
fuente
Si utiliza curl y firefox ... podría usar el complemento cliget que genera una llamada curl que incluye todos los mecanismos de autenticación (también conocidos como cookies).
Así que haga clic derecho en el
raw
botón cliget -> "copiar url para enlace" y luego péguelo en un shell. Obtendrá su archivo incluso si tuvo que iniciar sesión para verlo.fuente
fuente
Para los usuarios con GitHub Enterprise, debe construir una URL en el siguiente esquema
Invoke-WebRequest http://github.mycompany.com/api/v3/repos/my-org/my-repo/contents/myfiles/file.txt -Headers @{"Authorization"="token 8d795936d2c1b2806587719b9b6456bd16549ad8"}
Detalles pueden ser encontrados aqui
http://artisticcheese.blogspot.com/2017/04/how-to-download-individual-files-from.html
fuente
O prueba esto
fuente
Utilicé el siguiente formato y creo que es importante informar sobre el camino.
^^^ lo anterior no está muy completo en mi mente
algunos dijeron raw.github.com o raw en lugar de blob, pero la segunda línea funciona para mí y espero que ayude a otros ...
2 ¢
fuente
Puedes probar github-files-fetcher , es una herramienta de línea de comandos que descarga una sola carpeta o archivo desde un repositorio de GitHub.
Piense en un escenario real: estaba visitando la siguiente página web y quería descargar el
async
subdirectorio solo.https://github.com/reduxjs/redux/tree/master/examples
Con The
github-files-fetcher
, primero debe copiar laurl
de esa página, que es https://github.com/reduxjs/redux/tree/master/examples/async , y luego ejecute el siguiente comando en la línea de comandos:fetcher --url=https://github.com/reduxjs/redux/tree/master/examples/async
fuente
Esto es lo que funcionó para mí en este momento ...
Abra el archivo sin formato en una pestaña separada.
Copie todo en su bloc de notas en un nuevo archivo.
Guarde el archivo en la extensión que tenía originalmente
probado con un archivo php que descargué hace un momento (en el momento de la respuesta)
fuente