Executarea comenzii `git clona [email protected]:whatever creează un director în directorul curent numit orice, și scade conținutul de depozit Git in folderul:
/httpdocs/whatever/public
Problema mea este ca am nevoie de conținutul de depozit Git clonate în directorul curent, astfel încât acestea să apară în locația corectă pentru serverul de web:
/httpdocs/public
Știu cum de a muta fișierele după ce am'am clonat depozit, dar acest lucru pare să rupă Git, iar eu'd place să fie capabil de a actualiza doar sunand git pull
. Cum pot face asta?
Opțiunea De A:
git clone [email protected]:whatever folder-name
Ergo, pentru aici
utilizare:
git clone [email protected]:whatever .
Opțiunea B:
Muta .git
folder, de asemenea. Rețineți că.git` folder este ascuns în cele mai multe grafice exploratori de fișiere, astfel încât să fie sigur de a arata fișiere ascunse.
mv /where/it/is/right/now/* /where/I/want/it/
mv /where/it/is/right/now/.* /where/I/want/it/
Prima linie de bătaie toate fișierele normale, cea de-a doua linie de bătaie dot-fișiere. Este, de asemenea, n-a făcut-o într-o singură linie, permițând dotglob (de exemplu shopt -s dotglob
), dar care este, probabil, o soluție proastă, dacă ai pus întrebarea asta răspunsul răspunsuri.
Mai bine:
Păstrați copia de lucru în altă parte, și de a crea o legătură simbolică. Astfel:
ln -s /where/it/is/right/now /the/path/I/want/to/use
Pentru tine acest caz ar fi ceva de genul:
ln -sfn /opt/projectA/prod/public /httpdocs/public
Care cu ușurință ar putea fi schimbat pentru a testa dacă ai fi vrut, și anume:
ln -sfn /opt/projectA/test/public /httpdocs/public
fără mutarea fișierelor în jurul valorii de. Adăugat -fn
în cazul în care cineva este copierea acestor linii (-f
este forța, -n
evita unele adesea interacțiuni nedorite cu deja și non-existente link-uri).
Dacă doriți doar să funcționeze, utilizați O Opțiune, dacă cineva este de gând să se uite la ceea ce ai făcut, utilizați Opțiunea C.
De exemplu, cred că o mulțime de oameni pune această întrebare sunt după asta. Dacă sunteți în directorul pe care doriți conținutul depozit git aruncat la, run:
git clone [email protected]:whatever .
"." la sfârșitul specifică folderul curent ca checkout folder.
Clona un depozit cu
git clone [url]
De exemplu, dacă doriți să clona la Universitatea Stanford Drupal Cadru Deschis Git bibliotecă numit open_framework, puteți să o faceți astfel:
$ git clone git://github.com/SU-SWS/open_framework.git
Care creează un director numit open_framework (la actualul sistem de fișiere local locație), inițializează o .git director în ea, trage în jos toate datele pentru asta depozit, și verifică o copie de lucru de cea mai recentă versiune. Dacă te duci în nou creat open_framework director, veți vedea fișierele de proiect într-acolo, gata pentru a fi prelucrate sau folosite.
Dacă doriți să clona depozit într-un director numit altceva decât open_framework, puteți specifica ca cel de lângă opțiunea de linie de comandă:
$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme
Comanda face acelasi lucru ca cel anterior, dar directorul țintă este numit mynewtheme.
Git are un număr de diferite protocoale de transfer puteți folosi. Exemplul anterior folosește git:// protocol, dar pot, de asemenea, a se vedea http(s):// sau user@server:/path.git, care utilizează SSH protocol de transfer.
Pentru a clona git repository într-un anumit folder, puteți utiliza -C <calea>
parametru, de exemplu
git -C /httpdocs clone [email protected]:whatever
Deși l'll crea încă un "orice" folder de pe partea de sus a acesteia, astfel încât pentru a clona conținutul de depozit în directorul curent, se folosește următoarea sintaxă:
cd /httpdocs
git clone [email protected]:whatever .
Rețineți că clonarea într-un director existent este ** a permis atunci când directorul este gol**.
De când te - 're clonarea în dosar, care este accesibil pentru public, ia în considerare separarea depozit Git de lucru tree prin utilizarea --separate-git-dir=<git dir>
sau exclude .git
folder de pe server-ul web de configurare (de exemplu, în `.htaccess file).
Clona:
git clone [email protected]:jittre/name.git
Clona "ramură specifică":
git clone -b [branch-name] [email protected]:jittre/name.git
Pentru a clona a Prezent Directorul de Lucru:
git clona https://github.com/link.git
Pentru a clona a un Alt Director:
git clona https://github.com/link.git ./Folder1/Folder2
Sper că vă Ajută :)
Atunci când vă mutați fișierele pe care le doriți, sunteți, de asemenea, în mișcare .git
director? În funcție de sistemul dvs. de OPERARE și configurare, acest director pot fi ascunse.
Acesta conține repo și fișierele de suport, în timp ce fișierele de proiect, care sunt în /public
director sunt doar versiunile în prezent check-out comite (master ramură în mod implicit).
Utilizare
git clone <repository>
Clona depozit situat la <depozit> pe mașina locală. Original depozit poate fi amplasat pe sistemul de fișiere local sau pe o mașină de la distanță accesibile prin HTTP sau SSH.
git clone <repo> <directory>
Clona depozit situat la <depozit> în folder numit <director> pe mașina locală.
Sursa: înființarea unui depozit
Aici's cum aș face-o, dar am facut un alias pentru a face-o pentru mine.
$ cd ~Downloads/git; git clone https:git.foo/poo.git
Există, probabil, un mod mai elegant de a face acest lucru, cu toate acestea am găsit acest lucru să fie mai simplu pentru mine.
Aici's alias-am creat pentru a accelera lucrurile. Am făcut-o pentru zsh, dar ar trebui să funcționeze bine pentru bash sau orice alt shell cum ar fi pește, xyzsh, fizsh, și așa mai departe.
Edit ~/.zshrc
, /.bashrc
, etc. cu editorul preferat (al meu este Leafpad, deci mi-ar scrie $ leafpad ~/.zshrc
).
Preferința mea personală, cu toate acestea, este de a face o zsh plugin-ul pentru a urmări toate numele mele. Puteți crea un personal plugin pentru oh-my-zsh de funcționare aceste comenzi:
$ cd ~/.oh-my-zsh/
$ cd plugins/
$ mkdir your-aliases-folder-name; cd your-aliases-folder-name
# In my case '~/.oh-my-zsh/plugins/ev-aliases/ev-aliases'
$ leafpad your-zsh-aliases.plugin.zsh
# Again, in my case 'ev-aliases.plugin.zsh'
După aceea, adăugați aceste linii nou create gol alises.plugin fișier:
# Git aliases
alias gc="cd ~/Downloads/git; git clone "
(De aici, înlocuiți numele tau cu al meu.)
Apoi, în scopul de a obține pseudonime pentru a lucra, ei (împreună cu zsh) trebuie să fie de origine-în (sau ce-o's a numit). Pentru a face astfel încât, în interiorul plugin personalizat document adauga asta:
## Ev's Aliases
#### Remember to re-source zsh after making any changes with these commands:
#### These commands should also work, assuming ev-aliases have already been sourced before:
allsource="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh; clear"
sourceall="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh"
####
####################################
# git aliases
alias gc="cd ~/Downloads/git; git clone "
# alias gc="git clone "
# alias gc="cd /your/git/folder/or/whatever; git clone "
####################################
Salvați oh-my-zsh plugin și rula allsource
. În cazul în care nu pare să funcționeze, pur și simplu rulați sursa $ZSH/oh-my-zsh.sh; sursa /home/ev/.oh-my-zsh/plugin-uri/ev-alias-uri/ev-pseudonime.plugin-ul.zsh. Care va încărca plugin-ul source, care vă va permite să utilizați
allsource de acum încolo.
Am'm in procesul de a face un depozit Git cu toate numele mele. Vă rugăm să nu ezitați pentru a verifica-le aici: Ev's dot-files. Vă rugăm să nu ezitați să furculiță și să le îmbunătățim pentru a se potrivi nevoilor dumneavoastră.
Din anumite motive, această sintaxă nu este în picioare:
git clona repo-url [folder]
Aici folder este un opțional calea către folder local (care va fi un depozit local).
Git clona
va, de asemenea, "trage" de cod de la distanță depozit în depozit local.
În fapt este adevărat:
git clone repo-url = git init + git remote add origin repo-url + git pull
Dacă utilizați ssh
pentru `git de clonare puteți utiliza următoarea comandă.
git-C calea clona [email protected]:path_to_repo.git
de exemplu:
git-C /home/ubuntu/ clona [email protected]:kennethreitz/requests.git
ar trage git repository pentru cereri
la /home/ubuntu/
cale.
For Windows user
1> Open command prompt.
2> Change the directory to destination folder (Where you want to store your project in local machine.)
3> Now go to project setting online(From where you want to clone)
4> Click on clone, and copy the clone command.
5> Now enter the same on cmd .
It will start cloning saving on the selected folder you given .
Deși toate răspunsurile de mai sus sunt bune, aș dori să propun o nouă metodă în loc de a folosi link-ul simbolic metoda in public html director ca a propus cel MAI bine în răspunsul acceptat. Ai nevoie pentru a avea acces la server virtual host configurații.
Este vorba despre configurarea virtual host de server-ul web arătând direct la depozitul de director. În Apache puteți face, cum ar fi:
DocumentRoot /var/www/html/site-ul/ta-git-repo
Aici este un exemplu de o gazdă virtuală fișier:
<VirtualHost *:443>
ServerName example.com
DocumentRoot /path/to/your-git-repo
...
...
...
...
</VirtualHost>
Eu va recomand sa urmati link-ul următor:
https://help.github.com/en/articles/cloning-a-repository
Dacă primiți următorul mesaj de eroare în timp ce git clona URL comanda
fatal: unable to access 'URL': Could not resolve host: github.com
Apoi, utilizați următoarea comandă pentru a repara:
git config --global --unset https.proxy
Cu privire la această linie de original post:
"știu cum să mutați fișierele după ce am'am clonat repo, dar acest lucru pare să rupă git"
Eu sunt în stare să fac asta și eu nu't vedea orice probleme până acum cu add meu, comite, împinge, trage operațiuni.
Această abordare este menționat mai sus, dar nu doar defalcate în etape. Aici's pașii care lucrează pentru mine:
Existente folderul pe care tocmai ați copiat fișierele , este acum gata pentru a interacționa cu git.