Descargue una sola carpeta o directorio desde un repositorio de GitHub

Resuelto g_inherit asked hace 13 años • 0 respuestas

¿Cómo puedo descargar solo una carpeta o directorio específico desde un repositorio de Git remoto alojado en GitHub?

Digamos que el repositorio de GitHub de ejemplo se encuentra aquí:

[email protected]:foobar/Test.git

Su estructura de directorios:

Test/
├── foo/ 
│   ├── a.py
│   └── b.py   
└── bar/
    ├── c.py
    └── d.py

Quiero descargar solo la carpeta foo y no clonar todo el proyecto de prueba.

g_inherit avatar Aug 18 '11 17:08 g_inherit
Aceptado

Actualización de abril de 2021 : hay algunas herramientas creadas por la comunidad que pueden hacer esto por usted:

  • Directorio de Descargas (Créditos a fregante )
    • También se ha integrado en la excelente extensión de Chrome Refined Github como un botón en la interfaz de usuario web de Github.
  • GitZip (Créditos a Kino ; vea su respuesta aquí )
  • DownGit (Créditos para Minhas Kamal ; vea su respuesta aquí )

Nota: si está intentando descargar una gran cantidad de archivos, es posible que deba proporcionar un token a estas herramientas para evitar la limitación de velocidad.


Enfoque original (manual): la extracción de un directorio individual no es compatible de gitforma nativa, pero Github puede hacerlo a través de SVN. Si verifica su código con subversion, Github esencialmente convertirá el repositorio de git a subversion en el backend y luego entregará el directorio solicitado.

A continuación te explicamos cómo puedes utilizar esta función para descargar una carpeta específica. Usaré la popular biblioteca javascript lodashcomo ejemplo.

  1. Navegue hasta la carpeta que desea descargar . Descarguemos /testdesde masterla sucursal. Ejemplo de URL de repositorio de github

  2. Modifique la URL para subversión . Reemplazar tree/mastercon trunk.

    https://github.com/lodash/lodash/tree/master/test

    https://github.com/lodash/lodash/trunk/test

  3. Descarga la carpeta . Vaya a la línea de comando y tome la carpeta con SVN.

svn checkout https://github.com/lodash/lodash/trunk/test

Es posible que no veas ninguna actividad inmediatamente porque Github tarda hasta 30 segundos en convertir repositorios más grandes, así que ten paciencia.

Explicación completa del formato de URL:

  • Si está interesado en masterla rama, utilícela trunken su lugar. Entonces el camino completo estrunk/foldername
  • Si está interesado en foola rama, utilícela branches/fooen su lugar. El camino completo parecebranches/foo/foldername
  • Consejo profesional: puede utilizar svn lspara ver las etiquetas y ramas disponibles antes de descargar si lo desea

¡Eso es todo! Github también admite más funciones de subversión , incluido el soporte para confirmar e impulsar cambios.

nick avatar Aug 12 '2013 18:08 nick

Vaya a DownGit > Ingrese su URL > ¡Descargar!

Puede DESCARGAR DIRECTAMENTE o crear un ENLACE DE DESCARGA para cualquier directorio o archivo público de GitHub desde DownGit -


AbajoGit


También puede configurar las propiedades del archivo descargado: uso detallado .


Descargo de responsabilidad: caí en el mismo problema que el autor de la pregunta y no pude encontrar ninguna solución simple. Entonces, primero desarrollé esta herramienta para mi propio uso y luego la abrí para todos :)

Minhas Kamal avatar Aug 10 '2016 17:08 Minhas Kamal

Dos opciones para esta característica:

Opción 1: extensión del navegador GitZip

Extensión de Chrome , extensión de Edge , complemento de Firefox

Uso:

  1. Explore cualquier página del repositorio de Github.
  2. Dos formas de descargar:
    1. Elige los artículos:
      1. De forma predeterminada, puede hacer doble clic en los elementos o marcar la casilla de verificación en el frente de los elementos.
      2. Haga clic en el botón de descarga en la parte inferior derecha de la página.
    2. En el menú contextual:
      1. Haga clic en "Descargar GitZip" > "Repositorio completo" o "Carpeta actual".
      2. Mueva el cursor del mouse sobre el elemento y haga clic en "Descargar GitZip" > "Carpeta/archivo seleccionado".
      3. Haga clic en "Descarga de GitZip" > "Elementos marcados" después de hacer 2-1-1.
  3. Vea el panel de progreso y espere a que se descargue el activador del navegador.
  4. Obtenga el archivo ZIP.

Obtener ficha:

  1. Haga clic en el icono de extensión GitZip en su navegador.
  2. Haga clic en el enlace "Normal" o "Privado" además de "Obtener token".
  3. Autorice el permiso de GitZip en la página de autenticación de Github.
  4. Volver a la página de repositorio del principio.
  5. Continuar usándolo.

Opción 2: página gh de Github

http://kinolien.github.io/gitzip utilizando la API de GitHub y las bibliotecas JSZip y FileSaver.js.

Paso 1: ingrese la URL de github en el campo en la parte superior derecha.
Paso 2: Presione Intro o haga clic en Descargar para descargar el zip directamente o haga clic en Buscar para ver la lista de subcarpetas y archivos.
Paso 3: Haga clic en el botón "Descargar archivo Zip" o "Obtener archivo" para obtener archivos.

En la mayoría de los casos, funciona bien, excepto que la carpeta contiene más de 1000 archivos, debido a la limitación de la API de Github Trees. (se refiere a Github API#Contenido )

Y también puede admitir repositorios públicos/privados y actualizar el límite de velocidad, si tiene una cuenta de GitHub y utiliza el enlace "obtener token" en este sitio.

Kino avatar Nov 17 '2015 09:11 Kino

Si tienes svn, puedes usar svn exportpara hacer esto:

svn export https://github.com/foobar/Test.git/trunk/foo

Observe el formato de la URL:

  • La URL base eshttps://github.com/
  • /trunkadjunto al final

Antes de ejecutar svn export, es bueno verificar primero el contenido del directorio con:

svn ls https://github.com/foobar/Test.git/trunk/foo
janos avatar Aug 19 '2013 23:08 janos