Clonar contenido de un repositorio de GitHub (sin la carpeta en sí)


233

Me gustaría ver git cloneel contenido de un repositorio que tengo en GitHub . Cuando git clone(git @ github: me / name.git ...) recibo una carpeta llamada name/y dentro de mi nombre tengo mi contenido ... ¿Cómo obtengo SOLO el contenido?



Para omitir realmente la descarga de objetos innecesarios para ahorrar recursos de red: stackoverflow.com/questions/600079/…
— Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Respuestas:


314

Si el directorio actual está vacío, puede hacerlo con:

git clone git@github:me/name.git .

(Tenga .en cuenta al final para especificar el directorio actual). Por supuesto, esto también crea el .gitdirectorio en su carpeta actual, no solo el código fuente de su proyecto.

Este [directory]parámetro opcional se documenta en la git clonepágina del manual , que señala que la clonación en un directorio existente solo se permite si ese directorio está vacío.


2
Desafortunadamente, esto no funciona si ya hay otros directorios no relacionados en el mismo directorio. Buscando una solución. El mensaje de error es: "fatal: ruta de destino '.' ya existe ... "
— John Little

12
Los clones directorio de Git a deben estar vacías
— jolyonruss

1
Añadir un @HumaunRashid .como se explica en la respuesta: git clone https://github.com/humaun21/Test .. Y sí, git@github.me/name.gites un marcador de posición para cualquier dirección de repositorio de git real.
— Aaron Campbell

1
@JohnLittle Tenía el mismo problema, resulta que hay un archivo .DS_Store oculto, que se esconde allí. Simplemente rm .DS_Storey listo.
— Selrond

1
Si está trabajando en Linux OS, debe asegurarse de que el directorio esté vacío, incluida la búsqueda de archivos y subdirectorios ocultos. Puedes hacer eso con ls -a. Solo deberías haberlo hecho. y .. como salida. Esto no funcionará de otra manera
— Ayo Makanjuola

156

Desafortunadamente, esto no funciona si ya hay otros directorios no relacionados en el mismo directorio. Buscando una solución. El mensaje de error es: "fatal: ruta de destino '.' ya existe...".

La solución en este caso es:

git init
git remote add origin git@github.com:me/name.git
git pull origin master

Esta receta funciona incluso si hay otros directorios en el que desea pagar.


Hola, recibo un error como Permiso denegado <clave pública>. El extremo remoto colgó inesperadamente.
— Stan

¿No debería estar github.comallí después git remote ..., y no solo github?
— amn

55
Esta respuesta debería haber sido aceptada. funciona perfectamente.
— vikramvi

Leí en otro lugar aquí que debes ejecutar git fetch --allantes que el git pull origin master, porque si hay otras ramas en el repositorio, git pullno las obtendrás a menos que las uses fetchprimero. ¿Es esto correcto?
— Alex G

38

Si la carpeta no está vacía, una versión ligeramente modificada de la respuesta de @ JohnLittle funcionó para mí:

git init
git remote add origin https://github.com/me/name.git
git pull origin master

Como señaló @ peter-cordes, la única diferencia es usar el protocolo https en lugar de git, para lo cual debe tener claves SSH configuradas .


¿Qué versión de git estás ejecutando? Esto no funcionó para mí. Todavía no me deja configurarlo porque el directorio no está vacío
— guribe94

@ guribe94 git versión 2.5.0
— Tomáš Zemanovič

3
Esta es la misma respuesta, solo usando https anónimo en lugar de git-protocol sobre ssh (que requiere una cuenta github con un par de claves ssh configurado).
— Peter Cordes

15

Puede especificar el directorio de destino como segundo parámetro del git clonecomando, por lo que puede hacer:

git clone <remote> .

Esto clonará el repositorio directamente en el directorio local actual.


2

para clonar git repo en la carpeta actual y vacía (no git init) y si no usa ssh:

git clone https://github.com/accountName/repoName.git .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.