clon de git sin carpeta de proyecto

4 minutos de lectura

He dado acceso al servidor y quiero clonar git repo en mi carpeta raíz. Pero cuando hago git clone, me creará una carpeta con el nombre del proyecto, y mi carpeta de proyecto es mi raíz. No tengo acceso a mi carpeta principal, mi raíz es

/var/www/sites/mysite/

y cuando haga la clonación de la estructura de carpetas será

/var/www/sites/mysite/mysite

  • asegúrese de no entregar .git en apache/servidor web de su elección.

    – mnagel

    11 de julio de 2013 a las 6:36

  • ¿Responde esto a tu pregunta? Clonar el contenido de un repositorio de GitHub (sin la carpeta en sí)

    – Vishrant

    25 de marzo de 2020 a las 1:09

git clone acepta un último argumento que es el directorio de destino, por defecto es el nombre del proyecto pero puedes cambiarlo. En su caso, probablemente quiera simplemente .:

$ git clone origin-url .

Pero tenga en cuenta que, desde man git-clone:

La clonación en un directorio existente solo se permite si el directorio está vacío.

  • git clone @rodrigo ./heaven

    – amdev

    3 de junio de 2019 a las 7:24


  • ¿Y qué hay de la clonación de dos niveles de profundidad? ¿Tengo dos carpetas encima del pom.xml?

    – Bionix1441

    26 de agosto de 2020 a las 14:32

  • @Bionix1441: No sé acerca de la estructura de su directorio, pero si está dos niveles por debajo con solo escribir git clone aaa/bbb. Si quisieras subir dos niveles, podrías intentar git clone .. pero eso no funcionará porque su directorio principal nunca está vacío.

    – rodrigo

    27 de agosto de 2020 a las 11:23

  • La estructura es la siguiente folder1\folder2\pom.xmlsolo necesito el pom.xml y las carpetas en el mismo nivel que el pom.xml

    – Bionix1441

    27 de agosto de 2020 a las 14:10


También puede simplemente configurar un nuevo repositorio y luego el control remoto y la sucursal de seguimiento:

git init .
git remote add origin git@github.com:user/repo.git
git fetch origin
git checkout master

  • Esto aún no funcionaría si el repositorio tiene una carpeta principal

    – Hittz

    5 mayo 2015 a las 10:19

  • También tuve que configurar la rama ascendente para que coincida: git branch --set-upstream-to=origin/master master Luego tuve que enviar cambios locales a la sucursal remota: git push --force Esto reemplazó la antigua sucursal remota con mi copia local actualizada.

    – Daniel Z.A.

    25 de abril de 2020 a las 12:57


Esto también funciona bien en Windows.

git init
git remote add origin git@github.com:user/repo.git
git pull origin master

avatar de usuario
Aprendiz de código

Recuerde que un repositorio de git es simplemente la estructura de directorios donde lo almacena. Esto significa que cuando clona un repositorio en el directorio incorrecto, simplemente puede mover el contenido del directorio a cualquier otro lugar que desee y los datos del repositorio seguirán intactos. Entonces, por ejemplo, puede ejecutar los siguientes comandos desde la línea de comando:

$ mv /var/www/sites/mysite/mysite/* /var/www/sites/mysite`
$ mv /var/www/sites/mysite/mysite/.* /var/www/sits/mysite`
$ rmdir /var/www/sites/mysite/mysite

Puede clonar su proyecto en una subcarpeta y mover todos los archivos, incluido el .git carpeta en la carpeta principal (su raíz).

  • por qué no se puede hacer más fácilmente, como git clone git@github.com:whatever .\

    – dzona

    10 de julio de 2013 a las 22:24

  • se puede, ver rodrigos responde. pero si sabes que un repositorio git es solo un montón de archivos que se pueden mover libremente, esta respuesta es fácil de recordar.

    – mnagel

    11 de julio de 2013 a las 6:35

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

    – Salmán

    13 de noviembre de 2020 a las 13:43

avatar de usuario
IrrealApex

La forma más sencilla de lograr esto es inicializando un repositorio de Git en el directorio en el que desea clonar y extraerlo del control remoto:

git init
git pull <remote-url>

  • por qué no se puede hacer más fácilmente, como git clone git@github.com:whatever .\

    – dzona

    10 de julio de 2013 a las 22:24

  • se puede, ver rodrigos responde. pero si sabes que un repositorio git es solo un montón de archivos que se pueden mover libremente, esta respuesta es fácil de recordar.

    – mnagel

    11 de julio de 2013 a las 6:35

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

    – Salmán

    13 de noviembre de 2020 a las 13:43

avatar de usuario
Ronak Sethi

git clone git@github.com:user/repo.git .

Observe la . al final de ese comando.

O otra forma es

git init

git remote add origin git@github.com:user/repo.git

git pull origin master

¿Ha sido útil esta solución?