Git
Chapters ▾ 2nd Edition

A1.1 Dodatek A: Git v drugih okoljih - Grafični vmesniki

Če ste prebrali celotno knjigo, ste se naučili veliko o tem, kako uporabljati Git v ukazni vrstici. Lahko delate z lokalnimi datotekami, povežete svoj repozitorij z drugimi preko omrežja in učinkovito sodelujete z drugimi. Vendar zgodba se tu ne konča; Git je običajno uporabljen kot del večjega ekosistema in terminal ni vedno najboljši način za delo z njim. Sedaj bomo pogledali nekaj drugih vrst okolja, kjer je Git lahko uporaben in kako druge aplikacije (vključno z vašo) delajo skupaj z Gitom.

Grafični vmesniki

Gitovo domače okolje je terminal. Nove lastnosti se tu najprej pojavijo in samo ukazna vrstica je polna zmogljivost Gita na razpolago v celoti. Vendar osnovni tekst ni najboljša izbira za vsa opravila; včasih je vizualna predstavitev to, kar potrebujete, in nekaterim uporabnikom veliko bolj ustreza vmesnik pokaži in klikni.

Pomembno je omeniti, da so razlike med vmesniki prilagojene za različne poteke dela. Nekateri odjemalci izpostavijo samo skrbno kurirane podsklope funkcionalnosti Gita, tako da podpirajo določen način dela, ki ga ima avtor za efektivnega. Ko se to pogleda v tej luči, ne more biti nobeno izmed teh orodij poimenovano kot »boljše« od ostalih, saj so enostavno samo prilagojeni njihovim predvidenim namenom. Pomnite tudi, da v teh grafičnih odjemalcih ni ničesar, česar odjemalec ukazne vrstice ne more narediti; ukazna vrstica je še vedno mesto, kjer boste imeli največ moči in kontrole, ko delate s svojimi repozitoriji.

gitk in git-gui

Ko namestite Git, dobite tudi njegovi vizualni orodji gitk in git-gui.

gitk je grafični pregledovalnik zgodovine. O njem razmišljajte kot o zmogljivi lupini GUI preko git log in git grep. To je orodje za uporabo, ko poskušate ugotoviti, kaj se je zgodilo v preteklosti, ali vizualizirati zgodovino vašega projekta.

Gitk se najenostavnejše pokliče iz ukazne vrstice. Naredite samo cd v repozitorij Git in vpišite:

$ gitk [git log options]

Gitk sprejema mnoge možnosti ukazne vrstice, večina od njih je podanih preko osnovne akcije git log. Verjetno ena najbolj uporabnih je zastavica --all, ki pove gitk, da prikaže potrditve, ki so dosegljive iz katerekoli reference ne samo iz HEAD. Vmesnik Gitk je videti takole:

Ogledovalnik zgodovine `gitk`
Slika 177. Ogledovalnik zgodovine gitk

Na vrhu je nekaj, kar je videti kot določen izpis git log --graph; vsaka pika predstavlja potrditev, vrstice predstavljajo nadrejena razmerja in reference so prikazane kot obarvane škatlice. Rumena pika predstavlja HEAD in rdeča pika predstavlja spremembe, ki še bodo postale potrditve. Na dnu je pogled izbrane potrditve; komentarji in popravki na levi ter pogled povzetka na desni. Vmes je zbirka kontrol, uporabljenih za iskanje zgodovine.

git-gui na drugi strani je v glavnem orodje za obdelovanje potrditev. Tudi to je najenostavnejše priklicati iz ukazne vrstice:

$ git gui

In videti je nekako takole:

Orodje za potrjevanje `git-gui`
Slika 178. Orodje za potrjevanje git-gui

Na levi je indeks; spremembe, ki niso v pripravi, so na vrhu; spremembe, dane v področje priprave, so na dnu. Premikate lahko celotne datoteke med dvema stanjema s klikom na njihove ikone ali pa lahko izberete datoteko za pogled s klikom na njeno ime.

Desno zgoraj je pogled diff, ki prikazuje spremembe za trenutno izbrano datoteko. Z desnim klikom v tem področju lahko daste posamezne kose (ali posamezne vrstice) v področje priprave.

Desno spodaj je sporočilo in področje akcije. Vpišite svoje sporočilo v tekstovno polje in kliknite »Commit«, da naredite nekaj podobnega git commit. Lahko izberete tudi spreminjanje zadnje potrditve z izbiro »Amend« izbirnega gumba, ki bo posodobil področje »Staged Changes« z vsebino zadnje potrditve. Nato lahko nekatere spremembe enostavno daste v področje priprave ali izven njega, spremenite sporočilo potrditve in ponovno kliknete »Commit«, da zamenjate starejšo potrditev z novo.

gitk in git-gui sta primera orodij orientiranih na naloge. Vsako od njiju je prilagojeno določenemu namenu (ogledovanju zgodovine in ustvarjanju potrditev) in izpuščata lastnosti, ki niso potrebne za to opravilo.

GitHub za macOS in Windows

GitHub je ustvaril dva odjemalca Git, orientirana poteku dela: enega za Windows in enega za macOS. Ta odjemalca sta dober primer poteka dela orientiranih orodij — namesto izpostavljanja vseh funkcionalnosti Gita, se osredotočata na kuriran skupek pogosto uporabljenih lastnosti, ki skupaj dobro delajo. Videti sta nekako takole:

GitHub za macOS
Slika 179. GitHub za macOS
GitHub za Windows
Slika 180. GitHub za Windows

Oblikovana sta tako, da sta videti in da delujeta zelo podobno, torej ju bomo obravnavali kot en produkt v tem poglavju. Ne bomo delali podrobnega povzetka teh orodij (imata svojo lastno dokumentacijo), vendar pa je v redu, da gremo na hitro skozi pogled sprememb (kjer boste porabili večino svojega časa).

  • Na levi strani je seznam repozitorijev, ki jim odjemalec sledi; repozitorij lahko dodate (bodisi s kloniranjem ali pripetjem lokalno) s klikom na ikono »+« na vrhu tega področja.

  • V centru je področje vnosa potrditev, ki vam omogoča vnesti sporočilo potrditve in izbrati, katere datoteke naj bodo vključene. Na Windowsu je zgodovina potrditev prikazana neposredno pod tem; na macOS je v ločenem zavihku.

  • Na desni je pogled sprememb, ki prikazuje, kaj se je spremenilo v vašem delovnem direktoriju, ali katere spremembe so bile vključene v izbrani potrditvi.

  • Zadnja stvar, ki jo lahko opazite, je gumb »Sync« zgoraj desno, ki je primarni način za interakcijo preko omrežja.

Opomba

Za uporabo teh orodij ne potrebujete računa GitHub. Medtem ko sta načrtovani posebej za storitev GitHuba in priporočeni potek dela, bosta tudi veselo delovali s katerimkoli drugim repozitorijem in delali operacije omrežja s katerimkoli gostiteljem Gita.

Namestitev

GitHub za Windows in macOS se lahko prenese iz https://desktop.github.com/. Ko se aplikaciji prvič poženeta, vas peljeta skozi vse prve nastavitve Git, kot je nastavitev vašega imena in naslova e-pošte in obe nastavita smiselne privzete vrednosti za mnogo pogostih nastavitvenih možnosti, kot je predpomnjenje poverilnic in obnašanje CRLF.

Oboji sta »zimzeleni« — posodobitve so prenesene in nameščene v ozadju, medtem kot sta aplikaciji odprti. To ustrežljivo vključuje zapakirano verzijo Gita, kar pomeni, da vam verjetno ne bo treba skrbeti o ponovnem ročnem posodabljanju. Na sistemu Windows vključuje odjemalec bližnjico za zagon Powershella s Posh-git, o katerem bomo več govorili kasneje v tem poglavju.

Naslednji korak je dati orodju neke repozitorije za delo. Odjemalec vam prikaže seznam repozitorijev, do katerih imate dostop na GitHubu, in lahko jih klonira v enem koraku. Če že imate lokalni repozitorij, samo povlecite njegov direktorij iz Finderja ali Windows Explorerja v okno odjemalca GitHub in vključen bo v seznam repozitorijev na levi.

Priporočljiv potek dela

Enkrat, ko je nameščen in nastavljen, lahko odjemalec GitHub uporabite za mnogo pogostih opravil Git. Namenjen potek dela za to orodje je včasih imenovan »Potek GitHub« (angl. GitHub Flow). To pokrivamo bolj podrobno v Potek GitHub, vendar splošno bistvo je, da (a) boste dali potrditve na vejo in (b) dokaj redno boste sinhronizirali z oddaljenim repozitorijev.

Upravljanje vej je eno od področij, kjer se ti dve orodji razhajata. Na macOS je gumb na vrhu okna za ustvarjanje nove veje:

Gumb »Create Branch« na macOS
Slika 181. Gumb »Create Branch« na macOS

Na Windowsu je to narejeno tako, da vpišete ime nove veje v gradnik preklapljanja vej:

Ustvarjanje veje na sistemu Windows
Slika 182. Ustvarjanje veje na sistemu Windows

Ko je veja enkrat ustvarjena, je ustvarjanje novih potrditev dokaj enostavno. Naredite nekaj sprememb v svojem delovnem direktoriju in ko preklopite na okno odjemalca GitHub, vam bo prikazal, katere datoteke so se spremenile. Vpišite sporočilo potrditve, izberite datoteke, ki bi jih želeli vključiti, in kliknite na gumb »Commit« (ctrl-enter ali cmd-enter).

Glavni način za interakcijo z ostalimi repozitoriji preko omrežja je skozi lastnost »Sync«. Git ima v notranjosti ločene operacije za potiskanje, prenašanje, združevanje in ponovno baziranje, vendar odjemalci GitHub strnejo vse te v eno več koračno lastnost. To se zgodi, ko kliknete na gumb Sync:

  1. git pull --rebase. Če to ni uspešno zaradi konflikta združevanja, povrnite z git pull --no-rebase.

  2. git push.

To je najbolj pogosta sekvenca ukazov omrežja, ko delate v tem stilu, tako da vam stiskanje v en ukaz prihrani veliko časa.

Povzetek

Ta orodja so zelo primerna za potek dela, za katerega so načrtovana. Razvijalci in tisti, ki to niso, lahko sodelujejo pri projektu že v nekaj minutah, pri čemer so številne najboljše prakse za tovrsten potek dela vključene v orodja. Vendar, če je vaš potek dela drugačen, ali pa želite več kontrole nad tem, kako in kdaj so narejene operacije omrežja, priporočamo, da uporabite drug odjemalec ali ukazno vrstico.

Ostali GUI-ji

Na voljo je število ostalih grafičnih odjemalcev Git in imajo celoten razpon od specializiranih orodij z enim namenom, vse do aplikacij, ki poskušajo izpostaviti vse, kar Git lahko naredi. Uradna spletna stran Git ima točen seznam najbolj popularnih odjemalcev na https://git-scm.com/downloads/guis. Bolj celovit seznam je na voljo na spletni strani Git wiki na https://archive.kernel.org/oldwiki/git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools.html#Graphical_Interfaces.

scroll-to-top