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.