git clone senza cartella del progetto


86

Ho concesso l'accesso al server e desidero clonare il repository git nella mia cartella principale. Ma quando eseguo git clone, mi renderà una cartella con il nome del progetto e la mia cartella del progetto sarà la mia radice. Non ho accesso alla mia cartella principale, la mia radice

/var/www/sites/mysite/

e quando faccio la clonazione la struttura delle cartelle sarà

/var/www/sites/mysite/mysite

2
assicurati di non fornire .git nell'apache / webserver di tua scelta.
mnagel

Risposte:


199

git cloneaccetta un ultimo argomento che è la directory di destinazione, è di default il nome del progetto ma puoi cambiarlo. Nel tuo caso probabilmente vuoi semplicemente .:

$ git clone origin-url .

Ma nota che, da man git-clone:

La clonazione in una directory esistente è consentita solo se la directory è vuota.


4
git clone @rodrigo ./heaven
a_m_dev

E che ne dici di clonare due livelli in profondità? Ho due cartelle in cima al pom.xml?
Bionix1441

1
@ Bionix1441: non conosco la struttura della tua directory, ma se sei di due livelli in basso semplicemente scrivendo git clone aaa/bbb. Se volessi salire di due livelli potresti provare git clone ..ma non funzionerà perché la directory dei tuoi genitori non è mai vuota.
rodrigo

La struttura è la seguente folder1\folder2\pom.xml, mi servono solo il pom.xmle le cartelle allo stesso livello delpom.xml
Bionix1441

36

Puoi anche impostare un nuovo repository e quindi il monitoraggio remoto e il ramo:

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

Questo ancora non funzionerebbe se il repository avesse una cartella principale
Hittz

Ho dovuto anche impostare il ramo upstream in modo che corrispondesse: git branch --set-upstream-to=origin/master master Quindi git push --force ho dovuto inviare le modifiche locali al ramo remoto: questo ha sostituito il vecchio ramo remoto con la mia copia locale aggiornata.
Daniel ZA

8

Funziona bene anche su Windows.

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

5

Ricorda che un repository git è semplicemente la struttura di directory in cui lo memorizzi. Ciò significa che quando cloni un repository nella directory sbagliata, puoi semplicemente spostare il contenuto della directory in qualsiasi altro posto che desideri e i dati del repository sono ancora intatti. Ad esempio, puoi eseguire i seguenti comandi dalla riga di 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

4

Puoi clonare il tuo progetto in una sottocartella e spostare tutti i file, inclusa la .gitcartella, nella cartella principale (la tua radice).


3
perché non può essere fatto più facilmente, come git clone git@github.com: qualunque cosa. \
dzona

può, vedi la risposta di Rodrigos. ma sai che un repository git è solo un mucchio di file che possono essere spostati liberamente, questa risposta è facile da ricordare.
mnagel

git clone git @ github: me / name.git.
Salman Mahmud
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.