-
1. Početak
- 1.1 O kontroli verzije
- 1.2 Kratka istorija Gita
- 1.3 Osnove Gita
- 1.4 Komandna linija
- 1.5 Instaliranje Gita
- 1.6 Podešavanja za prvi put
- 1.7 Traženje pomoći
- 1.8 Rezime
-
2. Osnove Gita
- 2.1 Pravljenje Git repozitorijuma
- 2.2 Snimanje promena na repozitorijumu
- 2.3 Pregled istorije komitova
- 2.4 Opovrgavanje
- 2.5 Rad sa udaljenim repozitorijumima
- 2.6 Tagovanje
- 2.7 Alijasi
- 2.8 Rezime
-
3. Grananje u Gitu
- 3.1 Grananje ukratko
- 3.2 Osnove grananja i spajanja
- 3.3 Upravljanje granama
- 3.4 Tokovi rada sa grananjem
- 3.5 Udaljene grane
- 3.6 Rebaziranje
- 3.7 Rezime
-
4. Git on the Server
- 4.1 Protokoli
- 4.2 Postavljanje Gita na server
- 4.3 Generisanje javnog SSH ključa
- 4.4 Podešavanje servera
- 4.5 Git Daemon
- 4.6 Pametan HTTP
- 4.7 GitWeb
- 4.8 Opcije za hostovanje koje nude treća lica
- 4.9 Rezime
-
5. Distribuirani Git
- 5.1 Distribuirani tokovi rada
- 5.2 Kako doprineti projektu
- 5.3 Održavanje projekta
- 5.4 Rezime
-
6. GitHub
-
7. Git Tools
- 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 Summary
-
8. Prilagođavanje Gita
- 8.1 Konfiguracija Gita
- 8.2 Git atributi
- 8.3 Git hukovi
- 8.4 Primer polise sprovedene od strane Gita
- 8.5 Rezime
-
9. Git i ostali sistemi
- 9.1 Git kao klijent
- 9.2 Migriranje na Git
- 9.3 Rezime
-
10. Git iznutra
- 10.1 Vodovod i porcelan
- 10.2 Git objekti
- 10.3 Git reference
- 10.4 Paketoteke
- 10.5 Refspek
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Summary
-
A1. Appendix A: Git in Other Environments
- A1.1 Graphical Interfaces
- A1.2 Git in Visual Studio
- A1.3 Git in Eclipse
- A1.4 Git in Bash
- A1.5 Git in Zsh
- A1.6 Git in Powershell
- A1.7 Summary
-
A2. Appendix B: Embedding Git in your Applications
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
-
A3. Appendix C: Git Commands
- A3.1 Setup and Config
- A3.2 Getting and Creating Projects
- A3.3 Basic Snapshotting
- A3.4 Branching and Merging
- A3.5 Sharing and Updating Projects
- A3.6 Inspection and Comparison
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Plumbing Commands
4.5 Git on the Server - Git Daemon
Git Daemon
Sada ćemo podesiti demona koji servira repozitorijume preko "Git" protokola. Ovo je čest izbor za brz neautentifikovan pristup podacima sa Gita. Zapamtite da se ovo nije autentifikovan servis, i sve što servirate preko ovog protokola će biti javno na toj mreži.
Ako pokrećete ovo na serveru van svog fajervola, trebalo bi da ga koristite samo za projekte koji su javno vidljivi svetu. Ako je server koji koristite unutar fajervola, možete ga koristiti za projekte kojima veliki broj ljudi ili računara (kontinualna integracija ili bild-serveri) ima pristup za čitanje, kada ne želite da morate da dodajete SSH ključ za svakoga.
U svakom slučaju, Git protokol je relativno jednostavan za podešavanje. U suštini, treba da pokrenete ovu komandu na demonski način:
$ git daemon --reuseaddr --base-path=/opt/git/ /opt/git/
Opcija --reuseaddr
dozvoljava serveru da se restartuje a da ne čeka stare konekcije da dobiju tajmaut, opcija --base-path
omogućava ljudima da kloniraju projekat ne specificirajući pritom celu pitanju, a putanja na kraju govori Git demonu gde da traži repozitorijume za eksportovanje.
Ako imate uključen fajervol, moraćete i da napravite rupu u njemu na portu 9418 na boksu na kome podešavate ovo.
Možete demonizirati ovaj proces na nekoliko načina, u zavisnosti od toga koji operativni sistem imate instaliran. Na Ubuntu mašini, možete da koristite Upstart skriptu. Dakle, u sledećoj datoteci
/etc/init/local-git-daemon.conf
postavite ovu skriptu:
start on startup
stop on shutdown
exec /usr/bin/git daemon \
--user=git --group=git \
--reuseaddr \
--base-path=/opt/git/ \
/opt/git/
respawn
Iz sigurnostih razloga, strogo se savetuje da ovaj demon pokrenete kao korisnik koji ima samo pristup čitanju repozitorijuma — ovo možete lako da uradite tako što ćete kreirati novog korisnika "git-ro" i pokrenuti demona preko njega.
Radi jednostavnosti, mi ćemo ga jednostavno pokrenuti preko istog korisnika "git" koji izvršava git-shell
onakav kakav je.
Kada restartujete mašinu, vaš Git demon će početi automatski da se ponovos stvara ako padne. Da ga pokrenete a da ne morate da restartujete server, možete pokrenuti sledeće:
$ initctl start local-git-daemon
Na drugim sistemima treba da koristite xinetd
, skriptu u vašem sysvinit
sistemu, ili nešto drugo — sve dok tu komandu nekako možete da demonizirate i stavite je u mod za nadgledanje.
Zatim treba da kažete Gitu prema kojim repozitorijuma treba da obezbedi neautentifikovani pristup preko Git servera.
Ovo možete uraditi u svakom repozitorijumu kreiranjem datoteke sa imenom git-daemon-export-ok
.
$ cd /path/to/project.git
$ touch git-daemon-export-ok
Prisutnost tog fajla govori Gitu da je OK da servira ovaj projekat bez autentifikacije.