-
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
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:
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:
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:
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:
Na Windowsu je to narejeno tako, da vpišete ime nove veje v gradnik preklapljanja vej:
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:
-
git pull --rebase
. Če to ni uspešno zaradi konflikta združevanja, povrnite zgit pull --no-rebase
. -
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.