-
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.