-
1. ZaÄetek
- 1.1 O nadzoru razliÄic
- 1.2 Kratka zgodovina Gita
- 1.3 Kaj je Git?
- 1.4 Ukazna vrstica
- 1.5 Namestitev Gita
- 1.6 Prva nastavitev 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 Aliasi Git
- 2.8 Povzetek
-
3. Veje Git
- 3.1 Veje na kratko
- 3.2 Osnove vej in združevanja
- 3.3 Upravljanje vej
- 3.4 Poteki dela z vejami
- 3.5 Oddaljene veje
- 3.6 Ponovno baziranje
- 3.7 Povzetek
-
4. Git na strežniku
- 4.1 Protokoli
- 4.2 Pridobitev Gita na strežniku
- 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 Možnosti gostovanja pri tretjih ponudnikih
- 4.10 Povzetek
-
5. Porazdeljeni Git
- 5.1 Porazdeljeni poteki dela
- 5.2 Prispevek k projektu
- 5.3 Vzdrževanje projekta
- 5.4 Povzetek
-
6. GitHub
-
7. Orodja Git
- 7.1 Izbira revizije
- 7.2 Interaktivno pripravljanje
- 7.3 Shranjevanje na varno (angl. stashing) in ÄiÅ”Äenje
- 7.4 Podpisovanje vaŔega dela
- 7.5 Iskanje
- 7.6 Prepisovanje zgodovine
- 7.7 Demistifikacija ponastavitve
- 7.8 Napredno združevanje
- 7.9 Rerere
- 7.10 RazhroÅ”Äevanje z Gitom
- 7.11 Podmoduli
- 7.12 Povezovanje v pakete
- 7.13 Zamenjava
- 7.14 Shramba poverilnic
- 7.15 Povzetek
-
8. Prilagoditev Gita
- 8.1 Konfiguracija Git
- 8.2 Atributi Git
- 8.3 Kljuke Git
- 8.4 Primer pravilnika, ki ga uveljavlja Git
- 8.5 Povzetek
-
9. Git in ostali sistemi
- 9.1 Git kot odjemalec
- 9.2 Migracija na Git
- 9.3 Povzetek
-
10. Notranjost Gita
- 10.1 Napeljava in keramika
- 10.2 Objekti Git
- 10.3 Reference Git
- 10.4 Packfiles (datoteke zmanjŔanih podatkov)
- 10.5 Refspec
- 10.6 Protokoli prenosa
- 10.7 Vzdrževanje in obnovitev podatkov
- 10.8 Spremenljivke okolja
- 10.9 Povzetek
-
A1. Dodatek A: Git v drugih okoljih
- A1.1 GrafiÄni vmesniki
- A1.2 Git v 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 sisteme napeljave
4.5 Git na strežniku - Prikriti proces Git
Prikriti proces Git
Naslednje bomo nastavili prikriti proces (angl. daemon), ki streže repozitorije preko protokola »Git«. To je pogosta izbira za hiter, neoverjen dostop do vaŔih podatkov Git. Bodite pozorni, saj to ni overjena storitev in karkoli ponudite preko tega protokola, je javno znotraj njegovega omrežja.
Äe ga poganjate na strežniku izven svojega požarnega zidu, bi moral biti uporabljen samo za projekte, ki so javno vidni svetu. Äe je strežnik, na katerem ga poganjate, znotraj vaÅ”ega požarnega zidu, ga boste mogoÄe uporabili za projekte, do katerih ima veliko Å”tevilo ljudi ali raÄunalnikov (stalna integracija ali strežniki za gradnjo) samo bralni dostop, ko ne želite dodati kljuÄa SSH za vsakega.
V kateremkoli primeru je protokol Git relativno enostavno nastaviti. V osnovi morate pognati ta ukaz v naÄinu prikritega procesa:
$ git daemon --reuseaddr --base-path=/srv/git/ /srv/git/
Možnost --reuseaddr
omogoÄa strežniku ponovni zagon brez Äakanja, da stare povezave preteÄejo, medtem ko možnost --base-path
omogoÄa ljudem klonirati projekte brez doloÄanja celotne poti in pot na koncu pove prikritemu procesu Git, da poiÅ”Äe repozitorije za izvoz.
Äe poganjate požarni zid, boste morali narediti vanj tudi luknjo na vratih 9418 na napravi, kjer to nastavljate.
Ta proces lahko prikrijete na Å”tevilo naÄinov, odvisno od operacijskega sistema, na katerem ga poganjate.
Ker je systemd
najpogostejŔi zagonski sistem na modernih distribucijah Linuxa, ga lahko uporabite za ta namen.
Enostavno dodate datoteko v /etc/systemd/system/git-daemon.service
s sledeÄo vsebino:
[Unit]
Description=Start Git Daemon
[Service]
ExecStart=/usr/bin/git daemon --reuseaddr --base-path=/srv/git/ /srv/git/
Restart=always
RestartSec=500ms
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=git-daemon
User=git
Group=git
[Install]
WantedBy=multi-user.target
Morda ste opazili, da je prikriti proces Git tu zaÄet z git
tako za skupino kot za uporabnika.
Spremenite ga, da ustreza vaŔim potrebam in zagotovite, da podani uporabnik obstaja na sistemu.
Preverite tudi, da je zagonska datoteka Git prav zares na /usr/bin/git
, drugaÄe spremenite pot, kot je treba.
Na koncu boste pognali systemctl enable git-daemon
, da se storitev avtomatsko zažene pri zagonu, in storitev lahko zaženete in konÄate s systemctl start git-daemon
in systemctl stop git-daemon
.
Na drugih sistemih, boste morda želeli uporabiti xinetd
, skript v vaŔem sistemu sysvinit
, ali kaj drugegaāāādokler dobite ta ukaz kot prikriti proces in da je nekako spremljan.
Naslednje morate Gitu povedati, katerim repozitorijem se dovoli neoverjen strežniŔko osnovani dostop Git.
To lahko naredite v vsakem repozitoriju z izdelavo datoteke poimenovane git-daemon-export-ok
.
$ cd /path/to/project.git
$ touch git-daemon-export-ok
Prisotnost te datoteke pove Gitu, da je v redu ponuditi ta projekt brez overjanja.