git clone sin carpeta de proyecto


85

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

/var/www/sites/mysite/

y cuando lo haga, la estructura de la carpeta será

/var/www/sites/mysite/mysite

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

Respuestas:


193

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

$ git clone origin-url .

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

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


4
git clone @rodrigo ./heaven
a_m_dev

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

1
@ Bionix1441: No sé acerca de la estructura de su directorio, pero si está dos niveles más abajo simplemente escribiendo git clone aaa/bbb. Si quisiera subir dos niveles, podría intentarlo, git clone ..pero eso no funcionará porque su directorio principal nunca está vacío.
rodrigo

La estructura es la siguiente folder1\folder2\pom.xml, solo necesito las pom.xmlcarpetas y en el mismo nivel que laspom.xml
Bionix1441

34

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

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

Esto todavía no funcionaría si el repositorio tiene una carpeta principal
Hittz

También tuve que configurar la rama ascendente para que coincidiera: git branch --set-upstream-to=origin/master master luego tuve que enviar cambios locales a la rama remota: git push --force esto reemplazó la rama remota anterior con mi copia local actualizada.
Daniel ZA

7

Esto también funciona bien en Windows.

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

5

Recuerde que un repositorio de git es simplemente la estructura de directorio 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 siguen intactos. Entonces, por ejemplo, puede ejecutar los siguientes comandos desde la línea de comandos:

$ 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

4

Puede clonar su proyecto en una subcarpeta y mover todos los archivos, incluida la .gitcarpeta, a la carpeta principal (su raíz).


3
por qué no se puede hacer más fácilmente, como git clone git@github.com: lo que sea. \
dzona

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

git clone git @ github: yo / nombre.git.
Salman Mahmud hace
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.