-
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
10.1 Notranjost Gita - Napeljava in keramika
Morda ste preskočili na to poglavje iz prejšnjega poglavja, ali pa ste morda prišli sem po branju preostanka knjige — v katerem koli primeru, to je poglavje, kjer bomo pokrili notranje delovanje in implementacijo Gita. Ugotovili smo, da je učenje teh informacij v osnovi pomembno za razumevanje, kako uporaben in zmogljiv je Git, vendar ostali so nam trdili, da je lahko zmedeno in nepotrebno kompleksno za začetnike. Vseeno smo naredili to diskusijo v zadnjem poglavju knjige, da ga lahko preberete prej ali kasneje v svojem procesu učenja. Odločitev prepuščamo vam.
Sedaj ko ste tu, začnimo. Najprej, če ni še dovolj jasno, Git je v bistvu vsebinsko naslavljajoč datotečni sistem z VCS uporabniškim vmesnikom napisanim na vrhu njega. Nekoliko se boste o tem naučili, kaj to pomeni.
V zgodnjih dneh Gita (večinoma pred 1.5) je bil uporabniški vmesnik veliko bolj kompleksen, ker je poudarjal ta datotečni sistem namesto poliranega VCS-ja. V zadnjih nekaj letih je bil UI rafiniran, dokler ni postal tako čist in enostaven za uporabo kot kateri koli sistem na voljo; vendar pogostokrat stereotip ostaja o zgodnjem uporabniškem vmesniku Gita, da je kompleksen in težek za učenje.
Datotečni sistem naslavljanja vsebine je izjemno frajerski, torej bomo pokrili najprej to v tem poglavju; nato se boste naučili o mehanizmih transporta in opravilih vzdrževanja repozitorija, s katerimi se boste eventualno morali ukvarjati.
Napeljava in keramika
Ta knjiga pokriva, kako uporabljati Git s 30 ali nekaj podukazi, kot so checkout
, branch
, remote
itd.
Vendar ker je bil Git prvotno orodje za nadzor različic namesto polnega uporabniku prijaznega VCS-ja, ima kopico podukazov, ki delajo nižje nivojsko delo in so bili načrtovani za veriženje skupaj v stilu UNIX-a oz. so klicani iz skriptov.
Ti ukazi so v splošnem imenovani kot Gitovi ukazi »napeljave«, medtem ko so bolj uporabniku prijazni ukazi imenovani ukazi »keramike«.
Kot ste do sedaj opazili, se prvih devet poglavij knjige ukvarja skoraj ekskluzivno z ukazi keramike. Vendar v tem poglavju se boste večinoma ukvarjali z nižje nivojskimi ukazi napeljave, ker vam dajo dostop do notranjega delovanja Gita in pomagajo demonstrirati, kako in zakaj Git dela, kar dela. Mnogo teh ukazov ni mišljenih, da so uporabljeni ročno v ukazni vrstici, vendar so namenjeni bolj gradnji blokov za nova orodja in skripte po meri.
Ko poženete ukaz git init
v novem obstoječem direktoriju, Git ustvari direktorij .git
, kjer je locirano skoraj vse, kar Git shranjuje in s čimer manipulira.
Če želite iti nazaj ali klonirati svoj repozitorij, kopirati ta posamezni direktorij nekam drugam, vam da skoraj vse, kar potrebujete.
To celotno poglavje se v osnovi ukvarja s stvarmi v tem direktoriju.
Takole je običajno videti novo inicializirani direktorij .git
:
$ ls -F1
config
description
HEAD
hooks/
info/
objects/
refs/
Odvisno od svoje verzije Git lahko tam vidite tudi nekatere ostale vsebine, vendar to je sveži repozitorij git init
— to je, kar vidite privzeto.
Datoteko description
uporablja samo program GitWeb, tako da ne skrbite o njej.
Datoteka config
vsebuje vaše nastavitvene možnosti določenega projekta in direktorij info
vsebuje globalno izključitveno datoteko za ignorirane vzorce v datoteki .gitignore
, ki jim ne želite slediti.
Direktorij hooks
vsebuje vaše skripte kljuk strani odjemalca ali strežnika, katere so diskutirane v podrobnostih v Kljuke Git.
To pusti štiri pomembne vnose: HEAD
in (treba jo je še ustvariti) datoteka index
ter direktorija objects
in refs
.
To so osrednji deli Gita.
Direktorij objects
hrani vso vsebino vaše podatkovne baze, direktorij refs
shranjuje kazalce na objekte potrditev v teh podatkih (veje, oznake, daljave in še več), datoteko HEAD
, ki kaže na vejo, ki ste jo trenutno izvlekli in datoteko index
, kjer Git shranjuje informacije vašega področja priprave.
Sedaj boste pogledali vsakega od teh razdelkov v podrobnosti, da vidite, kako Git operira.