-
1. Pričetek
- 1.1 O nadzoru različic
- 1.2 Kratka zgodovina Gita
- 1.3 Kaj je Git?
- 1.4 Ukazna vrstica
- 1.5 Git namestitev
- 1.6 Prva namestitev 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 Git aliasi
- 2.8 Povzetek
-
3. Veje Git
- 3.1 Veje na kratko
- 3.2 Osnove vej in združevanja
- 3.3 Upravljanje vej
- 3.4 Potek dela z vejami
- 3.5 Oddaljene veje
- 3.6 Ponovno baziranje (rebasing)
- 3.7 Povzetek
-
4. Git na strežniku
- 4.1 Protokoli
- 4.2 Pridobiti Git na strežnik
- 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 Tretje osebne opcije gostovanja
- 4.10 Povzetek
-
5. Distribuirani Git
- 5.1 Razdeljeni poteki dela
- 5.2 Prispevanje projektu
- 5.3 Vzdrževanje projekta
- 5.4 Povzetek
-
6. GitHub
-
7. Orodja Git
- 7.1 Revision Selection
- 7.2 Interactive Staging
- 7.3 Stashing and Cleaning
- 7.4 Signing Your Work
- 7.5 Searching
- 7.6 Rewriting History
- 7.7 Reset Demystified
- 7.8 Advanced Merging
- 7.9 Rerere
- 7.10 Debugging with Git
- 7.11 Submodules
- 7.12 Bundling
- 7.13 Replace
- 7.14 Credential Storage
- 7.15 Povzetek
-
8. Prilagoditev Gita
- 8.1 Git Configuration
- 8.2 Git Attributes
- 8.3 Kljuke Git
- 8.4 An Example Git-Enforced Policy
- 8.5 Povzetek
-
9. Git in ostali sistemi
- 9.1 Git kot klient
- 9.2 Migracija na Git
- 9.3 Povzetek
-
10. Notranjost Gita
- 10.1 Napeljava in keramika
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Povzetek
-
A1. Dodatek A: Git v drugih okoljih
- A1.1 Grafični vmesniki
- A1.2 Git v programu 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 vododovodne sisteme
10.1 Notranjost Gita - Napeljava in keramika
Morda ste preskočili na to poglavje iz prejšnjega poglavja ali ste morda prišli sem po branju preostanka knjige - v katerem koli primeru, to je, kjer bomo pokrili notranje delovanje in implementacijo Gita. Ugotovili smo, da je učenje teh informacij v osnovi pomembno za razumevanje, kako uporaben in močan Git je, 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 vašem procesu učenja. Odločitev prepuščamo vam.
Sedaj ko ste tu, prič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 dnega Gita (večinoma pred 1.5) je bil uporabniški vmesnik veliko bolj kompleksen, ker je povdarjal ta datotečni sistem namesto poliranega VCS-ja. V zadnjih nekaj letih je bil UI rafiniran dokler ni postal kakor čist in enostaven za uporabo od katerega koli sistema na voljo; vendar pogostokrat stereotip ostaja o zgodnjem UI Gita, da je kompleksen in težek se za naučiti.
Datotečni sistem naslavljanja vsebine je izjemno kul, torej bomo pokrili prvo to v tem poglavju; nato se boste naučili o mehanizmih transporta in opravilih vzdrževanja repozitorija, s katerimi se boste eventuelno morali ukvarjati.
Napeljava in keramika
Ta knjiga pokriva, kako uporabljati Git s 30 ali nekaj podukazov, kot so checkout
, branch
, remote
itd.
Vendar ker je bil Git prvotno orodje za nadzor različic namesto polnega uporabniku prijazenega VCS-ja, ima kopico podukazov, ki delajo nižje nivojsko delo in so bili načrtovani za veriženje skupaj v stilu UNIXa oz. klicani iz skript.
Ti ukazi so v splošnem imenovani kot Gitovi ukazi “napeljave”, medtem ko so bolj uporabniku prijazni ukazi imenovani ukazi “keramika”.
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 manipulira.
Če želite iti nazaj ali klonirati vaš 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 običajno izgleda novo inicializirani direktorij .git
:
$ ls -F1
config
description
HEAD
hooks/
info/
objects/
refs/
Odvisno od vaše verzije Git lahko tam vidite tudi nekatere ostale vsebine, vendar to je sveži git init
repozitorij - to je, kar vidite privzeto.
Datoteko description
uporablja samo program GitWeb, tako da ne skrbite o njej.
Datoteka config
vsebuje vaše nastavitvene opcije določenega projekta in direktorij info
vsebuje globalno izključitveno datoteko za ignorirane vzorce v datoteki .gitignore
, katerim 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 (še za 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 izpisali in datoteko index
, kjer Git shranjuje informacije vašega področja priprave.
Sedaj boste pogledali vsako od teh sekcij v podrobnosti, da vidite, kako Git operira.