-
1. Pričetek
- 1.1 O nadzoru različic
- 1.2 Kratka zgodovina Gita
- 1.3 Kaj je Git?
- 1.4 Ukazna vrstica
- 1.5 Git namestitev
- 1.6 Prva namestitev Gita
- 1.7 Pridobivanje pomoči
- 1.8 Povzetek
-
2. Osnove Git
- 2.1 Pridobivanje repozitorija Git
- 2.2 Snemanje sprememb v repozitorij
- 2.3 Pregled zgodovine potrditev
- 2.4 Razveljavljanje stvari
- 2.5 Delo z daljavami
- 2.6 Označevanje
- 2.7 Git aliasi
- 2.8 Povzetek
-
3. Veje Git
- 3.1 Veje na kratko
- 3.2 Osnove vej in združevanja
- 3.3 Upravljanje vej
- 3.4 Potek dela z vejami
- 3.5 Oddaljene veje
- 3.6 Ponovno baziranje (rebasing)
- 3.7 Povzetek
-
4. Git na strežniku
- 4.1 Protokoli
- 4.2 Pridobiti Git na strežnik
- 4.3 Generiranje vaših javnih ključev SSH
- 4.4 Nastavitev strežnika
- 4.5 Prikriti proces Git
- 4.6 Pametni HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Tretje osebne opcije gostovanja
- 4.10 Povzetek
-
5. Distribuirani Git
- 5.1 Razdeljeni poteki dela
- 5.2 Prispevanje projektu
- 5.3 Vzdrževanje projekta
- 5.4 Povzetek
-
6. GitHub
-
7. Orodja Git
- 7.1 Revision Selection
- 7.2 Interactive Staging
- 7.3 Stashing and Cleaning
- 7.4 Signing Your Work
- 7.5 Searching
- 7.6 Rewriting History
- 7.7 Reset Demystified
- 7.8 Advanced Merging
- 7.9 Rerere
- 7.10 Debugging with Git
- 7.11 Submodules
- 7.12 Bundling
- 7.13 Replace
- 7.14 Credential Storage
- 7.15 Povzetek
-
8. Prilagoditev Gita
- 8.1 Git Configuration
- 8.2 Git Attributes
- 8.3 Kljuke Git
- 8.4 An Example Git-Enforced Policy
- 8.5 Povzetek
-
9. Git in ostali sistemi
- 9.1 Git kot klient
- 9.2 Migracija na Git
- 9.3 Povzetek
-
10. Notranjost Gita
- 10.1 Napeljava in keramika
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Povzetek
-
A1. Dodatek A: Git v drugih okoljih
- A1.1 Grafični vmesniki
- A1.2 Git v programu Visual Studio
- A1.3 Git v Visual Studio Code
- A1.4 Git v IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine
- A1.5 Git v Sublime Text
- A1.6 Git v Bashu
- A1.7 Git v Zsh
- A1.8 Git v Powershellu
- A1.9 Povzetek
-
A2. Dodatek B: Vdelava Gita v vašo aplikacijo
- A2.1 Git v ukazni vrstici
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Dodatek C: Ukazi Git
- A3.1 Nastavitev in konfiguracija
- A3.2 Pridobivanje in ustvarjanje projektov
- A3.3 Osnove posnetkov
- A3.4 Veje in združevanje
- A3.5 Deljenje in posodabljanje projektov
- A3.6 Pregled in primerjava
- A3.7 Razhroščevanje
- A3.8 Popravljanje
- A3.9 E-pošta
- A3.10 Zunanji sistemi
- A3.11 Administracija
- A3.12 Orodja za vododovodne sisteme
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.
Opomba
|
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.