repositorio lista comandos comando clonar git github

lista - git push



Descarga una sola carpeta o directorio de un repositorio de GitHub (26)

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

Di el ejemplo donde vive GitHub repo:

[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.


Vaya a DownGit > Ingrese su URL> Descargar!

Ahora, puede DESCARGAR DIRECTAMENTE o crear el ENLACE DE DESCARGA para cualquier directorio o archivo público de GitHub ( especialmente archivos grandes ) desde DownGit . Aquí hay una simple demostración.

También puede configurar el uso detallado de la propiedad del archivo descargado.


Dos opciones para esta característica:

Opción 1: Extensiones de navegador

Extensión Chrome , Complemento Firefox

Uso:

  1. En cualquier página de repos de GitHub.
  2. Simplemente haga doble clic en los elementos que necesita.
  3. Haga clic en el botón de descarga en la parte inferior derecha.
  4. Ver el panel de progreso y esperar la descarga del desencadenador del navegador.
  5. Obtener el archivo ZIP.

Obtener Token:

  1. Haga clic en el icono de la extensión GitZip en su navegador.
  2. Haga clic en el enlace "Normal" o "Privado" junto a "Obtener token".
  3. Autoriza el permiso GitZip en la página de autenticación Github.
  4. Volver a la página de repo del principio.
  5. Continuar utilizando.

Opción 2: Github gh-page

GitZip mediante el uso de la API de GitHub y las bibliotecas JSZip, FileSaver.js.

Paso 1: Ingrese la URL de github en el campo en la parte superior derecha.
Paso 2: Presione enter o haga clic en descargar para descargar 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 los archivos.

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

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


Para un repo de git genérico:

Si desea descargar archivos, no clonar el repositorio con el historial, puede hacerlo con git-archive .

git-archive comprimido zip o tar de un repositorio git. Algunas cosas que lo hacen especial:

  1. Puede elegir qué archivos o directorios en el repositorio git para archivar.
  2. No archiva la carpeta .git/ , ni ningún archivo sin seguimiento en el repositorio en el que se ejecuta.
  3. Puede archivar una rama, etiqueta o confirmación específica. Los proyectos administrados con git a menudo usan esto para generar archivos de versiones del proyecto (beta, release, 2.0, etc.) para que los usuarios los descarguen.

Un ejemplo de cómo crear un archivo del directorio docs/usage desde un repositorio remoto al que está conectado con ssh:

# in terminal $ git archive --format tar --remote ssh://server.org/path/to/git HEAD docs/usage > /tmp/usage_docs.tgz

Más información en este blog y en la documentación de git .

Nota sobre GitHub Repos:

GitHub no permite el acceso a git-archive . ☹️


1. Haga clic en este enlace http://kinolien.github.io/gitzip/
2. Pega el enlace de la carpeta Github que quieras descargar.
3.Haga clic en buscar para ver todos los archivos para descargar.
Nota: - Al usar la búsqueda no es necesario ingresar la clave token;) .. manténgalo simple (y)


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

Git no admite esto, pero Github lo hace a través de SVN. Si verifica su código con subversion, Github esencialmente convertirá el repositorio de git a subversion en el backend, luego servirá el directorio solicitado.

Aquí se explica cómo puede utilizar esta función para descargar una carpeta específica. lodash la popular biblioteca de lodash como un ejemplo.

  1. Obtener la URL de repo . Primero, copie la URL del repositorio de Github en su portapapeles.

  2. Modificar la URL para la subversión . Quiero descargar la carpeta en /docs desde la rama master , así que agregaré trunk/docs . La URL completa ahora es https://github.com/lodash/lodash/trunk/docs . Vea mi nota a continuación para obtener una explicación más detallada de por qué debemos usar este formato de URL.

  3. Descarga la carpeta . Ve a la línea de comandos y agarra la carpeta con SVN. svn checkout https://github.com/lodash/lodash/trunk/docs

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ás interesado en la rama master , usa el trunk lugar. Así que la ruta completa es trunk/foldername
  • Si estás interesado en foo branch, usa branches/foo lugar. La ruta completa se ve como branches/foo/foldername
  • Protip: puede usar 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 enviar y enviar cambios.


Es uno de los pocos lugares donde SVN es mejor que Git.

Al final hemos gravitado hacia tres opciones:

  1. Use wget para capturar los datos de GitHub (usando la vista de archivos sin procesar).
  2. Haga que los proyectos anteriores publiquen el subconjunto de datos necesarios como artefactos de compilación.
  3. Renunciar y utilizar el pago completo. Es un gran éxito en la primera compilación, pero a menos que obtenga mucho tráfico, no es demasiado complicado en las siguientes compilaciones.

Escribí una herramienta con Node.js solo para esto. Descúbrelo Descarga Repo Dir

La instalación con npm i -g dl-repo-dir y el comando repo estarán disponibles a nivel mundial.

descargar y renombrar un directorio en un repositorio

repo download aztack/download-repo-dir lib src/lib/new-name

descargar un repositorio

repo download aztack/download-repo-dir '''' src/lib/download-repo-dir

descargar desde un repositorio privado de gitlab con etiqueta dada

export GITLAB_API_PRIVATE_TOKEN=YOUR_TOKEN_HERE

repo download gitlab:mygitlab.com:topgroup/subgroup/repo#v1.0.0 dir src/lib/new-name

y habrá un archivo repo.json para guardar toda la información.

En un nuevo proyecto, puede inicializar el proyecto con el repo.json existente utilizando el comando de repo init .


Hay un paquete pip de Python3 llamado githubdl que puede hacer esto *:

git-download.sh https://api.github.com/repos/ojbc/main/contents/shared/ojb-certs

La página del proyecto está here

* Descargo de responsabilidad: escribí este paquete.


He creado un proyecto de código abierto, llamado GitHubFolderDownloader . Le permite descargar una sola carpeta de un repositorio sin clonar o descargar todo el repositorio.


Ninguna de las respuestas ayudó en mi situación. Si está desarrollando para Windows, es probable que no tenga svn. En muchas situaciones, no se puede contar con que los usuarios tengan Git instalado o no desean descargar repositorios completos por otras razones. Algunas de las personas que respondieron esta pregunta, como Willem van Ketwich y aztack, crearon herramientas para realizar esta tarea. Sin embargo, si la herramienta no está escrita para el idioma que está utilizando, o si no desea instalar una biblioteca de terceros, esto no funciona.

Sin embargo, hay una manera mucho más fácil. GitHub tiene una API que le permite descargar un solo archivo o el contenido de un directorio completo utilizando solicitudes GET . Puede acceder a un directorio utilizando https://api.github.com/repos/:owner/:repo_name/contents/:path que devuelve un objeto JSON que enumera todos los archivos en el directorio. En la enumeración se incluye un enlace al contenido sin formato del archivo, el parámetro download_url . El archivo puede ser descargado usando esa URL.

Es un proceso de dos pasos que requiere la capacidad de realizar solicitudes GET, pero esto puede implementarse en casi cualquier idioma, en cualquier plataforma. Puede ser utilizado para obtener archivos o directorios.


No hay nada de malo en otras respuestas, pero pensé que compartiría las instrucciones paso a paso para aquellos que deambulan por este proceso por primera vez.

Cómo descargar una única carpeta desde un repositorio de github (Mac OS X):

~ Para abrir la Terminal, simplemente haga clic en Spotlight y escriba la Terminal y luego presione Enter

  1. En una Mac, es probable que ya tenga SVN (para probar simplemente abrir el terminal y escribir "svn" o "svn" ~ sin las comillas)
  2. En Github: localice la ruta de Github a su carpeta de git (no el repositorio) haciendo clic en el nombre de la carpeta específica dentro de un repositorio
  3. Copia la ruta desde la barra de direcciones del navegador.
  4. Abrir Terminal y escriba: svn export
  5. Luego pegue en la dirección (ej.): https://github.com/mingsai/Sample-Code/tree/master/HeadsUpUI
  6. Reemplaza las palabras: árbol / maestro
  7. con la palabra: tronco
  8. Escriba la carpeta de destino para los archivos (en este ejemplo, almaceno la carpeta de destino dentro de la carpeta de Descargas para el usuario actual)
  9. Aquí el espacio es solo la barra espaciadora no la palabra (espacio) ~ / Downloads / HeadsUpUI
  10. El comando final del terminal muestra el comando completo para descargar la carpeta (comparar la dirección con el paso 5) svn export https://github.com/mingsai/Sample-Code/trunk/HeadsUpUI ~ / Downloads / HeadsUpUI

Por cierto: si está en Windows o en alguna otra plataforma, puede encontrar una descarga binaria de subversion (svn) en http://subversion.apache.org

~ Si desea retirar la carpeta en lugar de simplemente descargarla, intente usar la ayuda svn (tldr: reemplazar exportar con la extracción)

Actualizar

Respecto al comentario sobre la reanudación de una descarga / comprobación interrumpida. Intentaría ejecutar svn cleanup seguido de svn update . Por favor, busque SO para opciones adicionales.


No se puede; a diferencia de Subversion, donde cada subdirectorio puede verificarse individualmente, Git opera en todo el repositorio.

Para proyectos en los que es necesario un acceso más preciso, puede usar submódulos: cada submódulo es un proyecto Git separado y, por lo tanto, puede clonarse individualmente.

Es posible que un front-end de Git (por ejemplo, la interfaz web de GitHub, o gitweb) pueda elegir proporcionar una interfaz para que extraigas una carpeta determinada, pero que yo sepa, ninguno de ellos hace eso (aunque sí te permiten descargar archivos individuales). , entonces si la carpeta no contiene demasiados archivos, esa es una opción)

Editar : GitHub en realidad ofrece acceso a través de SVN, lo que le permitiría hacer esto (según el comentario). Consulte https://github.com/blog/1438-improved-svn-here-to-stay-old-svn-going-away para obtener las últimas instrucciones sobre cómo hacer esto


Nuestro equipo escribió un script de bash para hacer esto porque no queríamos tener que instalar SVN en nuestro servidor básico.

https://github.com/ojbc/docker/blob/master/java8-karaf3/files/git-download.sh

Utiliza la API github y se puede ejecutar desde la línea de comandos de esta manera:

curl -L https://api.github.com/repos/FortAwesome/Font-Awesome/tarball | tar xz --wildcards "*/web-fonts-with-css/webfonts/*.woff2" --strip-components=3


Otro ejemplo específico:

Me gusta descargar la carpeta ''iOS Pro Geo'' de la url

https://github.com/alokc83/APRESS-Books-Source-Code-/ tree / master /% 20Pro% 20iOS% 20Geo

y puedo hacerlo a través de

svn checkout https://github.com/alokc83/APRESS-Books-Source-Code-/trunk/%20Pro%20iOS%20Geo

Nota tronco en el camino.

Editado: (según el comentario de Tommie C)

Sí, usar exportar en lugar de desproteger daría una copia limpia sin archivos de repositorio git adicionales.

svn export https://github.com/alokc83/APRESS-Books-Source-Code-/trunk/%20Pro%20iOS%20Geo

Editado: Si el árbol / maestro no está allí en la url, entonces bifurcalo y estará allí en la url bifurcada.


Para exportar un directorio desde GitHub, reemplace "/ tree / master /" en la url del directorio con "/ trunk /".

Por ejemplo, para exportar el directorio desde la siguiente URL:

https://github.com/liferay/liferay-plugins/tree/master/portlets/sample-hibernate-portlet

ejecute el siguiente comando:

svn export https://github.com/liferay/liferay-plugins/trunk/portlets/sample-hibernate-portlet


Puedes hacer una descarga simple del árbol de directorios:

git archive --remote [email protected]:foobar/Test.git HEAD:foo | tar xf -

Pero si quieres comprobarlo, y ser capaz de hacer confirmaciones y rechazarlas, no, no puedes hacer eso.


Quienquiera que esté trabajando en una carpeta específica, necesita clonar esa carpeta en particular, por lo que debe seguir los pasos a continuación ** --- usando SPARSE CHECKOUT --- **

Paso 1: Crear un directorio.

Paso 2: Inicializar un repositorio Git. ( git init )

Paso 3: Habilitar los pagos dispersos. ( git config core.sparsecheckout true )

Paso 4: Indique a Git en qué directorios desea (echo 2015 / brand / May (consulte la carpeta en la que desea trabajar) >> .git/info/sparse-checkout )

Paso 5: Agregue el control remoto ( git remote add -f origin https://jafartke.com/mkt-imdev/DVM.git )

Paso final 6: recuperar los archivos ( git pull origin master )


Si el directorio que desea descargar es una biblioteca separada, es mejor crear otro repositorio de git y luego usar la función de submódulo de git.

Por supuesto, tienes que ser el propietario del repositorio inicial que deseas



Si realmente solo desea "descargar" la carpeta y no "clonarla" (para su desarrollo), la forma más sencilla de obtener una copia de la versión más reciente del repositorio (y por lo tanto una carpeta / archivo dentro de ella), sin necesidad de clonar todo el repositorio o incluso instalar git en primer lugar, es descargar un archivo zip (para cualquier repositorio, bifurcación, sucursal, cometer, etc.) yendo al repositorio deseado / bifurcación / bifurcación / cometer en GitHub (p. ej., http(s)://github.com/<user>/<repo>/commit/<Sha1> para obtener una copia de los archivos tal como estaban después de una confirmación específica) y seleccionando el botón Downloads cerca de la parte superior derecha .

Este formato de archivo no contiene nada de la magia de git-repo, solo los archivos rastreados (y quizás algunos archivos .gitignore si fueron rastreados, pero puede ignorarlos): eso significa que si el código cambia y desea mantente en la cima, tendrás que volver a descargarlo manualmente, y también significa que no podrás usarlo como repositorio de git ...

No estoy seguro de si eso es lo que está buscando en este caso (nuevamente, "descargar" / ver vs "clonar / desarrollar"), pero puede ser útil ...


Si se siente cómodo con los comandos de Unix, no necesita dependencias especiales o aplicaciones web para esto. Puedes descargar el repositorio como un archivo comprimido y descomprimir solo lo que necesites.

Ejemplo (archivos woff2 de un subdirectorio en fontawesome):

export GIT_TOKEN=1234567890123456789012345678901234567890123 pip install githubdl githubdl -u http://github.com/foobar/test -d foo

  • Más información sobre el formato del enlace: https://developer.github.com/v3/repos/contents/#get-archive-link (incluido cómo obtener un archivo zip o sucursales / referencias específicas)
  • Mantenga la parte inicial de la ruta ( */ ) para que coincida con cualquier directorio. Github crea un directorio contenedor con la referencia de confirmación en el nombre, por lo que no se puede conocer.
  • Probablemente desee que --strip-components sea ​​la misma cantidad de barras ( / ) en la ruta (argumento anterior).

Esto descargará todo el archivo tar. Utilice el método SVN mencionado en las otras respuestas si esto debe evitarse o si desea ser amable con los servidores de GitHub.


Si tiene svn , puede usar svn export para hacer esto:

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

Note el formato de URL:

  • La URL base es https://github.com/
  • /trunk añadido 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


Solo para ampliar las respuestas anteriores, un ejemplo real de un repositorio GitHub real a un directorio local sería:

svn ls https://github.com/rdcarp/playing-cards/trunk/PumpkinSoup.PlayingCards.Interfaces svn export https://github.com/rdcarp/playing-cards/trunk/PumpkinSoup.PlayingCards.Interfaces /temp/SvnExport/Washburn

A veces un ejemplo concreto ayuda a aclarar las sustituciones propuestas.


Trabajo con servidores CentOS 7 en los que no tengo acceso de root, ni git, svn, etc (¡ni quiero!), Así que hice un script en python para descargar cualquier carpeta de github: https://github.com/andrrrl/github-folder-downloader

El uso es simple, solo copie la parte relevante de un proyecto github, digamos que el proyecto es https://github.com/MaxCDN/php-maxcdn/ , y desea una carpeta donde solo estén algunos archivos de origen, entonces debe hacer algo como:

$ python gdownload.py "/MaxCDN/php-maxcdn/tree/master/src" /my/target/dir/
(creará carpeta de destino si no existe)

Requiere una biblioteca lxml , se puede instalar con easy_install lxml
Si no tiene acceso de root (como yo), puede crear un archivo .pydistutils.py en su directorio $HOME con estos contenidos: [install] user=1 Y easy_install lxml solo funcionará (ref: https://.com/a/33464597/591257 ).


Uso Linux, así que, ponga esto en ~ / .bashrc, llamado incluso: D $ HOME / .bashrc

git-dowloadfolder(){ a="$1" svn checkout ${a/tree//master/trunk} }

a continuación, actualice la cáscara con

source ~/.bashrc

luego usarlo con git-downloadfolder blablabla: D


Utilice esta función, el primer argumento es la url a la carpeta, el segundo es el lugar donde se descargará la carpeta para:

function github-dir() { svn export "$(sed ''s/tree//master/trunk/'' <<< "$1")" "$2" }