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

rodrigo
fuente
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 [email protected]:user/repo.git
git fetch origin
git checkout master
richo
fuente
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 [email protected]:user/repo.git
git pull origin master
hobbydev
fuente
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
Aprendiz de código
fuente
4

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

Sergey K.
fuente
3
por qué no se puede hacer más fácilmente, como git clone [email protected]: 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