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?

mazlix
fuente
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.

Mark Longair
fuente
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í, [email protected]/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 [email protected]:me/name.git
git pull origin master

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

John Little
fuente
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 .

Tomáš Zemanovič
fuente
¿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.

Laurent Pireyn
fuente
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 .
Fingerman
fuente
1

este trabajador para mi

git clone <repository> .
Diego Santa Cruz Mendezú
fuente