Git
Chapters ▾ 2nd Edition

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.

scroll-to-top