-
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
A3.4 Dodatek C: Ukazi Git - Veje in združevanje
Veje in združevanje
V Gitu obstaja kar nekaj ukazov, ki omogočajo večino funkcionalnosti razvejanja in združevanja.
git branch
Ukaz git branch
je v resnici nekakšno orodje za upravljanje vej.
Omogoča vam izpis seznama vej, ustvarjanje novih vej, brisanje in preimenovanje vej.
Večina poglavja Veje Git je namenjenega ukazu branch
, ki ga uporabljamo skozi celotno poglavje.
Prvič smo ga predstavili v razdelku Ustvarjanje nove veje, večino njegovih drugih funkcij (seznam in brisanje) pa smo opisali v razdelku Upravljanje vej.
V razdelku Sledenje vej smo uporabili možnost git branch -u
, da nastavimo sledenje veji.
Na koncu pa smo opisali nekaj njegovih ozadij v razdelku Reference Git.
git checkout
Ukaz git checkout
se uporablja za preklapljanje med vejami in izvlečenje vsebine v delovni imenik.
Prvič smo se srečali z ukazom v razdelku Preklapljanje med vejami skupaj z ukazom git branch
.
V razdelku Sledenje vej smo prikazali, kako ga uporabiti za sledenje vejam z zastavico --track
.
V razdelku Preverjanje konfliktov smo ga uporabili, da ponovno uvedemo konflikte med datotekami z --conflict=diff3
.
V razdelku Demistifikacija ponastavitve smo podrobneje opisali njegovo razmerje z ukazom git reset
.
Na koncu pa v razdelku HEAD smo podrobneje opisali njegovo izvajanje.
git merge
Orodje git merge
se uporablja za združevanje ene ali več vej v vejo, ki jo imate odprto.
Nato se trenutna veja premakne na rezultat združevanja.
Ukaz git merge
je bil prvič predstavljen v razdelku Osnove vej.
Čeprav se v knjigi uporablja na različnih mestih, obstaja zelo malo različic ukaza merge
— običajno samo git merge <branch>
z imenom ene veje, ki jo želite združiti.
V razdelku Razvejan javni projekt smo na koncu obravnavali združevanje z zdrobljenim zgodovinskim zapisom (kjer Git združi delo, vendar se pretvarja, kot da gre samo za novo potrditev, brez beleženja zgodovine veje, ki jo združujete).
V razdelku Napredno združevanje smo se veliko naučili o postopku in ukazu za združevanje, vključno z ukazom -Xignore-space-change
in zastavico --abort
za prekinitev težavnega združevanja.
Naučili smo se preverjati podpise pred združevanjem, če vaš projekt uporablja podpisovanje z GPG, v razdelku Podpisovanje potrditev.
Na koncu smo se v razdelku Združevanje poddreves (angl. subtree merge) naučili o združevanju poddreves.
git mergetool
Ukaz git mergetool
enostavno zažene zunanji pripomoček za združevanje v primeru težav pri združevanju v Gitu.
Omenili smo ga na hitro v Konflikti osnovnega združevanja in podrobneje razložili, kako lahko implementirate svoj lastni zunanji pripomoček za združevanje v Zunanja orodja za združevanja in razlike.
git log
Ukaz git log
se uporablja za prikazovanje dosegljive zabeležene zgodovine projekta od najnovejše zabeležene različice nazaj.
Privzeto prikazuje samo zgodovino veje, na kateri trenutno ste, vendar lahko navedete drugačne ali celo več glav ali vej, od katerih se želite premikati.
Pogosto se uporablja tudi za prikaz razlik med dvema ali več vejami na ravni potrditev.
Ta ukaz se uporablja v skoraj vsakem poglavju knjige za prikazovanje zgodovine projekta.
Ukaz smo predstavili in ga podrobno obravnavali v Pregled zgodovine potrditev.
Tam smo si ogledali možnosti -p
in --stat
, da dobimo idejo, kaj je bilo predstavljeno v vsaki potrditvi, in možnosti --pretty
in --oneline
, da si zgodovino ogledamo bolj jedrnato, skupaj s preprostimi možnostmi filtriranja po datumu in avtorju.
V Ustvarjanje nove veje smo ga uporabili z možnostjo --decorate
, da si lažje vizualiziramo, kje so kazalniki naših vej, in uporabimo tudi možnost --graph
, da si ogledamo, kako so videti različne zgodovine.
V razdelkih Zasebna majhna ekipa in Obsegi potrditev smo pokrili sintakso branchA..branchB
pri uporabi ukaza git log
, da vidimo, katere potrditve so edinstvene za vejo v primerjavi z drugo vejo.
V Obsegi potrditev smo to precej obsežno obravnavali.
V razdelkih Dnevnik združevanja in Trojna pika smo pokrili uporabo formata branchA…branchB
in sintakse --left-right
, da vidimo, kaj je v eni veji ali drugi, vendar ne v obeh.
V razdelku Dnevnik združevanja smo si ogledali tudi, kako uporabiti možnost --merge
za pomoč pri odpravljanju konfliktov med združevanjem, in uporabo možnosti --cc
, da si ogledamo konflikte pri združevanju potrditev v zgodovini.
V razdelku Kratka imena reflog smo uporabili možnost -g
, da si ogledamo Gitov reflog prek te orodne vrstice, namesto da bi prehajali po vejah.
V razdelku Iskanje smo si ogledali uporabo možnosti -S
in -L
za izvajanje precej zapletenih iskanj po nečem, kar se je zgodilo v zgodovini kode, kot je npr. ogled zgodovine funkcije.
V razdelku Podpisovanje potrditev smo se naučili, kako uporabiti --show-signature
, da dodamo potrditveno verigo k vsaki potrditvi v izpisu git log
glede na to, ali je bilo pravilno podpisano ali ne.
git stash
Ukaz git stash
se uporablja za shrambo nezaključenega dela na varno, da se očisti delovni direktorij, ne da bi bilo treba nedokončano delo potrditi na veji.
To je v bistvu v celoti pokrito v razdelku Shranjevanje na varno (angl. stashing) in čiščenje.
git tag
Ukaz git tag
se uporablja za dodajanje trajnih zaznamkov določeni točki v zgodovini kode.
Navadno se uporablja za stvari, kot so izdaje.
Ta ukaz je predstavljen in podrobno obravnavan v razdelku Označevanje in ga v praksi uporabljamo v razdelku Označevanje vaših izdaj.
Prav tako smo obravnavali, kako ustvariti z GPG podpisano oznako z zastavico -s
in kako jo preveriti z zastavico -v
v razdelku Podpisovanje vašega dela.