Git
Chapters ▾ 2nd Edition

4.2 Git na strežniku - Pridobiti Git na strežnik

Pridobiti Git na strežnik

Sedaj bomo šli skozi nastavitve Git storitve, ki poganja te protokole na vašem lastnem strežniku.

Note

Tu bomo demonstrirali ukaze in potrebne korake za osnovne, poenostavljene namestitve na Linux osnovani strežnik, čeprav je tudi možno poganjati te storitve tudi na Mac ali Windows strežnikih. V bistvu nastavitev produkcijskega strežnika znotraj vaše infrastrukture bo zagotovo povzročilo razlike v varnostnih ukrepih ali orodjih operacijskih sistemov, vendar upajmo, da vam bo to dalo splošno idejo, kaj je vključeno.

Da se začetno nastavi katerikoli Git strežnik, morate izvoziti obstoječi repozitorij v nov gol repozitorij - repozitorij, ki ne vsebuje delujočega direktorija. To je v splošnem precej enostavno narediti. Da klonirate vaš repozitorij, da ustvarite nov gol repozitorij, poženite ukaz kloniranja z opcijo --bare. Po dogovoru se direktoriji golega repozitorija končajo z .git, sledeče:

$ git clone --bare my_project my_project.git
Cloning into bare repository 'my_project.git'...
done.

Sedaj bi morali imeti kopijo podatkov direktorija Git v vašem direktoriju my_project.

To je v grobem ekvivalentno nečemu takemu

$ cp -Rf my_project/.git my_project.git

Je nekaj manjših razlik v nastavitveni datoteki; vendar za vaše razloge je to blizu podobne stvari. Vzame sam repozitorij Git, brez delujočega direktorija in ustvari direktorij posebej zanj samega.

Dajanje golega repozitorija na strežnik

Sedaj, ko imate golo kopijo vašega repozitorija, vse kar potrebujete narediti je, da ga date na strežnik in nastavite vaše protokole. Recimo, da ste nastavili strežnik imenovan git.example.com, do katerega imate SSH dostop in želite shraniti vse vaše repozitorije Git pod direktorij /opt/git. Predpostavljamo, da /opt/git obstaja na tem strežniku, lahko nastavite vaš novi repozitorij s kopiranjem vašega golega repozitorija preko:

$ scp -r my_project.git user@git.example.com:/opt/git

Na tej točki, ostali uporabniki, ki imajo SSH dostop do istega strežika, ki ima bralni dostop do direktorija /opt/git lahko klonirajo vaš repozitorij s pogonom

$ git clone user@git.example.com:/opt/git/my_project.git

Če se uporabnik prijavi preko SSH v strežnik in ima pisalni dostop do direktorija /opt/git/my_project.git, bo tudi avtomatično imel dostop potiskanja.

Git bo avtomatično dodal skupino pravic pisanja k repozitoriju ustrezno, če poženete ukaz git init z opcijo --shared.

$ ssh user@git.example.com
$ cd /opt/git/my_project.git
$ git init --bare --shared

Vidite, kako enostavno je narediti repozitorij Git, ustvariti golo verzijo in ga postaviti na strežnik do katerega imate vi in vaši sodelavci dostop SSH. Sedaj ste pripravljeni na sodelovanje na istem projektu.

Pomembno je omeniti, da je to dobesedno vse, kar potrebujete pognati za uspešen strežnik Git, do katerega ima več ljudi dostop - samo dodajte SSH-zmožne račune na strežnik in se držite golega repozitorija nekje, da vsi tisti uporabniki imajo bralni in pisalni dostop do njega. Ste pripravljeni za pogon - nič drugega ni potrebnega.

V naslednjih nekaj sekcija boste videli, kako razširiti na bolj sofisticirane nastavitve. Ta diskusija bo vključevala, da ni potrebno ustvariti uporabniških računov za vsakega uporabnika, dodajanje javnega bralnega dostopa k repozitorijem, nastavljanje spletnih uporabniških vmesnikov in več. Vendar pomnite, da za sodelovanje z večimi ljudmi na privatnem projektu je vse kar morate narediti_ SSH strežnik in goli repozitorij.

Majhne nastavitve

Če gre za manjše stvari ali samo poskušate Git v vaši organizaciji in imate samo nekaj razvijalcev, so stvari lahko enostavne za vas. Ena najbolj kompliciranih aspektov nastavljanja strežnika Git je upravljanje uporabnikov. Če želite, da je nekaj repozitorijev samo bralnih za določene uporabnike in bralno/pisalnih za ostale, so lahko dostop in pravice malo bolj zahtevne za poskrbeti.

Dostop SSH

Če imate strežnik do katerega vsi vaši razvijalci že imajo dostop SSH, je v splošnem najenostavnejše nastaviti vaš prvi repozitorij tam, ker nimate za narediti skoraj nič dela (kot smo pokrili v zadnji sekciji). Če želite bolj kompleksen tip kontrole dostopa pravic na vaših repozitorijih, jih lahko upravljate z običajnimi pravicami datotečnega sistema operacijskega sistema na katere teče vaš strežnik.

Če želite postaviti vaše repozitorije na strežnik, ki nima računov za vsakogar v vaši ekipi za katero želite imeti dostop pisanja, potem morate zanje nastaviti dostop SSH. Predpostavljamo, da če imate strežnik s katerim to naredite, že imate nameščen SSH strežnik in to je način, kako dostopate do strežnika.

Na voljo je nekaj načinov, na katere lahko date dostop za vse v vaši ekipi. Prvo je nastaviti račune za vsakogar, kar je enostavno vendar okorno. Morda ne želite poganjati adduser in nastavljati začasnih gesel za vsakega uporabnika.

Drugi način je ustvariti enega uporabnika git na napravi, vprašati vsakega uporabnika, ki bo imel pisalni dostop, da vam pošlje SSH javni ključ in dodate ta ključ v datoteko ~/.ssh/authorized_keys vašega novega git uporabnika. Na tej točki bo vsak lahko dostopa do te naprave preko uporabnika git. To ne vpliva na podatke pošiljanja na kakršenkoli način - SSH uporabnik, s katerim se povezujete, ne vpliva na pošiljanja, ki jih snemate.

Drug način je, da mora vaš strežnik SSH overiti iz strežnika LDAPali neke drugega centraliziranega overitvenega vira, ki ga že morda imate nastavljenega. Dokler vsak uporabnik lahko dobi lupinski dostop na napravi, katerikoli SSH overitveni mehanizem, ki si ga lahko izmislite, bi moral delati.