Git
Chapters ▾ 2nd Edition

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.

scroll-to-top