-
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.3 Dodatek C: Ukazi Git - Osnove posnetkov
Osnove posnetkov
Za osnovni potek dela s posnetki vsebine in potrjevanjem v zgodovino je le nekaj osnovnih ukazov.
git add
Ukaz git add
doda vsebino iz delovnega direktorija v področje priprave podatkov (ali »indeks«) za naslednjo potrditev.
Ko se zažene ukaz git commit
, privzeto pogleda le to področje za pripravo, zato se ukaz git add
uporablja za urejanje, kaj želite imeti v naslednjem posnetku potrditve.
Ta ukaz je v Gitu izjemno pomemben in je v tej knjigi omenjen ali uporabljen na desetine mest. Hitro bomo pokrili nekatere edinstvene načine uporabe.
Najprej smo podrobno predstavili in razložili git add
v razdelku Sledenje novih datotek.
V razdelku Konflikti osnovnega združevanja smo omenili, kako ga uporabiti za reševanje konfliktov združevanja.
V razdelku Interaktivno pripravljanje smo prešli na uporabo interaktivnega področja za pripravo samo določenih delov spremenjene datoteke.
Končno smo ga v razdelku Drevesni objekti emulirali na nizki ravni, tako da lahko dobite idejo, kaj počne za zavesami.
git status
Ukaz git status
vam bo pokazal različna stanja datotek v vašem delovnem direktoriju in področju priprave.
Katere datoteke so spremenjene in niso v področju priprave ter katere so v področju priprave, vendar še niso bile potrjene.
V svoji običajni obliki vam bo tudi pokazal nekaj osnovnih namigov, kako premikati datoteke med temi stopnjami.
Najprej smo obravnavali status
v razdelku Preverjanje statusa vaših datotek, tako v svojih osnovnih kot poenostavljenih oblikah.
Čeprav ga uporabljamo skozi celotno knjigo, je tam zajeto praktično vse, kar lahko storite z ukazom git status
.
git diff
Ukaz git diff
se uporablja, ko želite videti razlike med katerima koli dvema drevesoma.
To bi lahko bila razlika med vašim delovnim okoljem in področjem priprave (git diff
sam po sebi), med področjem priprave in zadnjim potrjenim stanjem (git diff --staged
) ali med dvema potrjenima stanjema (git diff master branchB
).
Najprej smo si ogledali osnovne uporabe ukaza git diff
v razdelku Ogled vaših sprememb v področju priprave in izven njega, kjer smo prikazali, kako si ogledati, katere spremembe so pripravljene in katere še niso.
Uporabili smo ga za iskanje morebitnih težav s praznimi znaki pred potrditvijo z možnostjo --check
v razdelku Smernice potrjevanja.
V razdelku Določanje, kaj se uvaja smo prikazali, kako preveriti razlike med vejami bolj učinkovito s sintakso git diff A…B
.
V razdelku Napredno združevanje smo ga uporabili za filtriranje razlik med praznimi znaki z -b
in primerjavo različnih stopenj konfliktnih datotek z --theirs
, --ours
in --base
.
Nazadnje smo ga uporabili v razdelku Začetek s podmoduli za učinkovito primerjavo sprememb podmodulov z možnostjo --submodule
.
git difftool
Ukaz git difftool
preprosto zažene zunanje orodje, ki vam prikaže razliko med dvema drevesoma, v primeru, da želite uporabiti kaj drugega kot le vgrajeni git diff
ukaz.
To smo omenili le na kratko v Ogled vaših sprememb v področju priprave in izven njega.
git commit
Ukaz git commit
vzame vsebino datotek, ki so bile dane v pripravo z git add
in zabeleži nov trajni posnetek v bazi podatkov in nato premakne kazalec veje na trenutni veji.
Osnove za izvajanje posnetkov smo predstavili v Potrjevanje vaših sprememb.
Tam smo prikazali tudi, kako uporabiti zastavico -a
, da preskočite korak git add
v vsakodnevnih potekih dela in kako uporabiti zastavico -m
, da v ukazni vrstici predate sporočilo za potrditev namesto zagona urejevalnika.
V razdelku Razveljavljanje stvari smo predstavili uporabo možnosti --amend
, s katero lahko ponovno opravite zadnjo potrditev.
V razdelku Veje na kratko smo šli v podrobnosti, kaj git commit
naredi in zakaj to počne na ta način.
V razdelku Podpisovanje potrditev smo pogledali kako kriptografsko podpisati posnetke z zastavico -S
.
Nazadnje smo v razdelku Objekti potrditev pogledali, kaj ukaz git commit
naredi v ozadju in kako je dejansko izveden.
git reset
Ukaz git reset
se uporablja predvsem za razveljavitev stvari, kot se morda lahko sklepa iz glagola.
Kazalec HEAD
premakne in po potrebi spremeni kazalec index
ali področje priprave in poleg tega lahko z možnostjo --hard
po potrebi spremeni delovni imenik.
S to končno možnostjo je mogoče izgubiti delo, če se uporabi napačno, zato se prepričajte, da ga razumete, preden ga uporabite.
Najprej smo obravnavali najpreprostejšo uporabo ukaza git reset
v razdelku Povrnitev datoteke iz področja priprave, kjer smo ga uporabili za razveljavitev priprave datoteke, na kateri smo že uporabili ukaz git add
.
Podrobno smo ga obravnavali v razdelku Demistifikacija ponastavitve, ki je v celoti posvečeno razlagi tega ukaza.
Ukaz git reset --hard
smo uporabili za preklic združevanja v razdelku Prekinitev združevanja, kjer smo uporabili tudi ukaz git merge --abort
, ki je nekakšen ovoj za ukaz git reset
.
git rm
Ukaz git rm
se uporablja za odstranjevanje datotek iz področja priprave in delovnega direktorija Git.
Podobno kot ukaz git add
, tudi ta ukaz pripravi odstranitev datoteke za naslednjo potrditev.
V razdelku Odstranjevanje datotek smo podrobneje obravnavali ukaz git rm
, vključno z rekurzivnim odstranjevanjem datotek in odstranjevanjem datotek samo iz področja priprave, vendar jih pustimo v delovnem direktoriju z uporabo možnosti --cached
.
Edina druga različna uporaba ukaza git rm
v knjigi je v razdelku Odstranjevanje objektov, kjer smo na kratko uporabili in pojasnili uporabo možnosti --ignore-unmatch
pri izvajanju ukaza git filter-branch
, kar preprosto preprečuje, da bi se pojavila napaka, ko datoteke, ki jih želimo odstraniti, ni.
To je lahko uporabno za namene skriptiranja.
git mv
Ukaz git mv
je preprost ukaz, ki omogoča premikanje datotek in nato se izvede ukaz git add
na novi datoteki ter ukaz git rm
na stari datoteki.
Ta ukaz smo samo na kratko omenili v razdelku Premikanje datotek.
git clean
Ukaz git clean
se uporablja za odstranjevanje nepotrebnih datotek iz vašega delovnega direktorija.
To lahko vključuje odstranjevanje začasnih artefaktov gradnje ali datotek z združitvenimi konflikti.
Veliko možnosti in scenarijev, v katerih bi uporabili ukaz clean
, smo obravnavali v razdelku Čiščenje vašega delovnega direktorija.