Descargue una sola carpeta o directorio desde un repositorio de GitHub
¿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.
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 git
forma 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 lodash
como ejemplo.
Navegue hasta la carpeta que desea descargar . Descarguemos
/test
desdemaster
la sucursal.Modifique la URL para subversión . Reemplazar
tree/master
contrunk
.https://github.com/lodash/lodash/tree/master/test
➜https://github.com/lodash/lodash/trunk/test
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
master
la rama, utilícelatrunk
en su lugar. Entonces el camino completo estrunk/foldername
- Si está interesado en
foo
la rama, utilícelabranches/foo
en su lugar. El camino completo parecebranches/foo/foldername
- Consejo profesional: puede utilizar
svn ls
para 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.
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 -
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 :)
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:
- Explore cualquier página del repositorio de Github.
- Dos formas de descargar:
- Elige los artículos:
- De forma predeterminada, puede hacer doble clic en los elementos o marcar la casilla de verificación en el frente de los elementos.
- Haga clic en el botón de descarga en la parte inferior derecha de la página.
- En el menú contextual:
- Haga clic en "Descargar GitZip" > "Repositorio completo" o "Carpeta actual".
- Mueva el cursor del mouse sobre el elemento y haga clic en "Descargar GitZip" > "Carpeta/archivo seleccionado".
- Haga clic en "Descarga de GitZip" > "Elementos marcados" después de hacer 2-1-1.
- Elige los artículos:
- Vea el panel de progreso y espere a que se descargue el activador del navegador.
- Obtenga el archivo ZIP.
Obtener ficha:
- Haga clic en el icono de extensión GitZip en su navegador.
- Haga clic en el enlace "Normal" o "Privado" además de "Obtener token".
- Autorice el permiso de GitZip en la página de autenticación de Github.
- Volver a la página de repositorio del principio.
- 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.
Si tienes svn
, puedes usar svn export
para hacer esto:
svn export https://github.com/foobar/Test.git/trunk/foo
Observe el formato de la URL:
- La URL base es
https://github.com/
/trunk
adjunto 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