Utførelse av kommandoen git clone [email protected]:whatever
oppretter en katalog i min nåværende mappe som heter hva som helst, og slipper innholdet i Git-repositoriet i den mappen:
/httpdocs/whatever/public
Problemet mitt er at jeg trenger innholdet i Git-repositoriet klonet inn i min nåværende katalog slik at de vises på riktig sted for webserveren:
/httpdocs/public
Jeg vet hvordan jeg skal flytte filene etter at jeg har klonet depotet, men dette ser ut til å ødelegge Git, og jeg vil gjerne kunne oppdatere bare ved å ringe git pull
. Hvordan kan jeg gjøre dette?
Alternativ A: Alternativ B: Alternativ C: Alternativ D:
git clone [email protected]:whatever folder-name
Ergo, til bruk "her og nå":
git clone [email protected]:whatever .
Alternativ B:
Flytt også mappen .git
. Merk at .git
-mappen er skjult i de fleste grafiske filutforskere, så sørg for å vise skjulte filer.
mv /where/it/is/right/now/* /where/I/want/it/
mv /where/it/is/right/now/.* /where/I/want/it/
Den første linjen henter alle vanlige filer, den andre linjen henter dot-filer. Det er også mulig å gjøre det i en linje ved å aktivere dotglob (dvs. shopt -s dotglob
), men det er sannsynligvis en dårlig løsning hvis du stiller spørsmålet dette svaret besvarer.
Enda bedre:
Behold arbeidskopien din et annet sted, og lag en symbolsk lenke. For eksempel slik:
ln -s /where/it/is/right/now /the/path/I/want/to/use
I ditt tilfelle vil dette være noe sånt som:
ln -sfn /opt/projectA/prod/public /httpdocs/public
Som lett kan endres til test hvis du vil ha det, dvs:
ln -sfn /opt/projectA/test/public /httpdocs/public
uten å flytte rundt på filer. Lagt til -fn
i tilfelle noen kopierer disse linjene (-f
er tvinge, -n
unngå noen ofte uønskede interaksjoner med allerede og ikke-eksisterende lenker).
Hvis du bare vil at det skal fungere, bruk alternativ A, hvis noen andre skal se på det du har gjort, bruk alternativ C.
Eksemplet jeg tror mange som stiller dette spørsmålet er ute etter er dette. Hvis du er i katalogen du vil at innholdet i git-repositoriet skal dumpes til, kjører du:
git clone [email protected]:whatever .
Den "." på slutten spesifiserer gjeldende mappe som utsjekkingsmappe.
Når du flytter filene dit du vil ha dem, flytter du også .git-katalogen? Avhengig av operativsystem og konfigurasjon kan denne katalogen være skjult.
Den inneholder repoen og støttefilene, mens prosjektfilene som ligger i /public
-katalogen bare er versjonene i den aktuelle utleveringen (master branch som standard).