-
1. Pričetek
- 1.1 O nadzoru različic
- 1.2 Kratka zgodovina Git-a
- 1.3 Osnove Git
- 1.4 The Command Line
- 1.5 Git namesitev
- 1.6 Prva namestitev Git-a
- 1.7 Pridobitev pomoči
- 1.8 Povzetek
-
2. Osnove Git
- 2.1 Pridobitev repozitorija Git
- 2.2 Snemanje sprememb repozitorija
- 2.3 Pregled zgodovine pošiljanja
- 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 Distribuirani 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 Git-a
- 8.1 Git Configuration
- 8.2 Git Attributes
- 8.3 Git kljuke
- 8.4 An Example Git-Enforced Policy
- 8.5 Povzetek
-
9. Git in drugi sistemi
- 9.1 Git kot klient
- 9.2 Migracija na Git
- 9.3 Povzetek
-
10. Notranjost Git-a
- 10.1 Napeljava in porcelan
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 The Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Povzetek
-
A1. Appendix A: Git v drugih okoljih
- A1.1 Grafični vmesniki
- A1.2 Git v Visual Studiu
- A1.3 Git v Eclipse
- A1.4 Git V Bash-u
- A1.5 Git v Zsh
- A1.6 Git v Powershell-u
- A1.7 Povzetek
-
A2. Appendix B: Vključevanje Git-a v vašo aplikacijo
- A2.1 Git v ukazni vrstici
- A2.2 Libgit2
- A2.3 JGit
-
A3. Appendix C: Git Commands
- A3.1 Setup and Config
- A3.2 Getting and Creating Projects
- A3.3 Basic Snapshotting
- A3.4 Branching and Merging
- A3.5 Sharing and Updating Projects
- A3.6 Inspection and Comparison
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Plumbing Commands
A1.1 Appendix A: Git v drugih okoljih - Grafični vmesniki
Če ste prebrali celotno knjibo, ste se naučili veliko o tem, kako uporabljati Git v ukazni vrstici. Lahko delate z lokalnimi datotekami, povežete vaš repozitorij z drugimi preko omrežja in delate efektivno z ostalimi. Vendar zgodba se tu ne konča; Git je običajno uporabljen kot del večjih ekosistemov in terminal ni vedno najboljši način za delo z njim. Sedaj bomo pogledali nekaj drugim vrst okolj, kjer je Git lahko uporaben in kako druge aplikacij (vključno z vašo) delajo skupaj z Git-om.
Grafični vmesniki
Git materno okolje je v terminualu. Nove lastnosti se najprej prikažejo tam in samo ukazna vrstica je polna moč Git-a v celoti na razpolago. Vendar osnovni tekst ni najboljša izbira za vsa opravila; včasih je vizualna predstavitev to, kar potrebujete in nakateri uporabniki so veliko bolj udobni z vmesnikom točke in klika.
Pomembno je omeniti, da razlike med vmesniki so prilagojene z različnimi poteki dela. Nekateri klienti izpostavijo samo pazljive kustose razstave funkcionalnosti Git, da podpirajo določen način dela, ki ga avtor smatra za efektivnega. Ko se pogleda to v tej luči, nobeno izmed teh orodij ne more biti poimenovano kot “boljše” od ostalih, saj so enostavno samo prilagojeni njihovim predvidenim namenom. Pomnite tudi, da ni ničesar v teh grafičnih klientih, kar klient ukazne vrstice ne more narediti; ukazna vrstica je še vedno, kjer boste imeli največ moči in kontrole, ko delate z vašimi repozitoriji.
gitk
in git-gui
Ko namestite Git, dobite tudi njegovi vizualni orodji gitk
in git-gui
.
gitk
je grafični pregledovalnih zgodovine.
O njem razmišljajte kot o močni GUI lupini 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 je najenostavnejši za sklicevanje iz ukazne vrstice.
Naredite samo cd
v repozitorij Git in vpišite:
$ gitk [git log options]
Gitk sprejema mnoge opcije ukazne vrstice, večina od njih je podanih preko podležeče akcije git log
.
Verjetno ena najbolj uporabnik je zastavica --all
, ki pove gitk, da prikaže pošiljanja, ki so doseglijva iz kateregakoli ref-a ne samo HEAD.
Gitk-jev vmesnik izgleda takole:

gitk
history viewer.Na vrhu je nekaj, kar izgleda kot nek izpis git log --graph
; vsaka pika predstavlja pošiljanje, vrstice predstavljajo starševska razmerja in ref-i so prikazani kot obarvane škatlice.
Rumena pika predstavlja HEAD in rdeča pika predstavlja spremembe, ki še bodo postale pošiljanja.
Na dnu je pogled izbranega pošiljanja; komentarji in popravki na levi in pogled povzetka na desni.
Vmes je zbirka kontrol uporabljenih za iskanje zgodovine.
git-gui
na drugi strani je primarno orodje za obdelovanje pošiljanj.
To je tudi najenostavnejše za sklic iz ukazne vrstice:
$ git gui
In izgleda nekako takole:

git-gui
commit tool.Na levi je kazalo; spremembe, ki niso v vmesni fazi na vrhu; spremembe dane v vmesno fazo na dnu. Premikate lahko celotne datoteke med dvemi stanji 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. Posamezne kupe lahko date v vmesno fazo (ali posamezne vrstice) z desnim klikom v tem področju.
Desno spodaj je sporočilo in področje akcije. Vpišite vaše sporočilo v tekstovno polje in kliknite “Commit”, da naredite nekaj podobnega git commit
.
Lahko tudi izberete za spreminjanje zadnjega pošiljanja z izbiro “Amend” izbirnega gumba, ki bo posodobil področje “Staged Changes” z vsebino zadnjega pošiljanja.
Nato lahko enostavno date v vmesno fazo ali date izved vmesne faze nekatere spremembe, spremenite sporočilo pošiljanja in kliknite “Commit” ponovno, da zamenjate starejše pošiljanje z novim.
gitk
in git-gui
so primeri orodij orientiranih na naloge.
Vsako od njih je prilagojeno za določen namen (ogledovanje zgodovine in ustvarjanje pošiljanj zaporedno) in izpuščanju lastnosti, ki niso potrebne za to opravilo.
GitHub za Mac in Windows
GitHub je ustvaril dva poteku dela orientirana klienta Git: enega za Windows in enega za Mac. Ta klienta sta dober primer poteku dela orientiranih orodij - namesto izpostavljnju vseh funkcionalnosti Git-a, se namesto tega fokusirata na kuriran skupek pogosto uporabljenih lastnosti, ki skupaj dobro delajo. Izgledata nekako takole:


Oblikovana sta, da izgledata in delujeta zelo podobno, torej ju bomo tretirali kot en produkt v tem poglavju. Ne bomo delali podrobnostnega poteka teh orodij (imata svojo lastno dokumentacijo), vendar na hitro iti skozi pogled sprememb (kjer boste porabili večino vašega časa) je v redu.
-
Na levi strani je seznam repozitorijev, katerim klient sledi; repozitorij lahko dodate (bodisi s kloniranjem ali pripetjem lokalno) s klikom na ikono “+” tega področja.
-
V centru je področje vnosa pošiljanj, ki vam omoga vnesti sporočilo pošiljanja in izbrati, katere datoteke naj bodo vključene. (Na Windows-u je zgodovina pošiljanj prikazana direktno pod tem; na Mac-u je na ločenem zavihku.)
-
Na desni je pogled diff, ki prikazuje, kaj se je spremenilo v vašem delovnem direktoriju, ali katere spremembe so bile vključene v izbranem pošiljanje.
-
Zadnja stvar za opaziti je gumb “Sync” zgoraj desno, ki je primarni način za interakcijo preko omrežja.
Note
|
Ne potrebujete računa GitHub za uporabo teh orodij. Medtem ko sta načrtovani posebej za storitev GitHub-a in priporočeni potek dela, bosta tudi veselo delovali s katerimkoli drugim repozitorijem in delali operacije omrežja s katerimkoli gostiteljem Git-a. |
Namestitev
GitHub za Windows se lahko prenese iz https://windows.github.com in GitHub za Mac iz https://mac.github.com. Ko se aplikaciji prvič požene, vas pelje skozi vse prve nastavitve Git, kot je nastavitev vašega imena in naslova e-pošte in tako nastavi smiselne privzete vrednosti za mnogo pogostih nastavitvenih opcij, kot je predpomnenje overilnic in obnašanje CRLF.
Oboji sta “evergreen” - posodobitve so prenesene in nameščene v ozadju medtem kot so aplikacije odprte. To pomagajoče vključuje zapakirano verzijo Git-a, kar pomeni, da vam verjetno ne bo treba skrbeti o ročnem posodabljanju ponovno. Na Windows klient vključuje bližnjico za zagon Powershell-a s Posh-git, o katerem bomo govorili več kasneje v tem poglavju.
Naslednji korak je dati orodju neke repozitorije za delo. Klient vam prikaže seznam repozitorijev do katerih imate dostop na GitHub-u in jih lahko klonirate v enem koraku. Če že imate lokalni repozitorij, samo potegnite njegov direktorij iz Finder-ja ali Windows Explorer-ja v okno klienta GitHub in vključen bo v seznam repozitorijev na levi.
Priporočljiv potek dela
Enkrat ko je nameščen in nastavljen, lahko uporabite klienta GitHub za mnogo pogostih opravil Git. Namenjen potek dela za to orodje je včasih imenovan “GitHub Flow.” To pokrivamo v več podrobnostih v The GitHub Flow, vendar splošno bistvo je, da (a) pošiljali boste na vejo in (b) sinhronizirali boste z oddaljenim repozitorijev dokaj redno.
Upravljanje vej je eno področij, kjer se ti dve orodji razhajata. Na Mac-u je gump na vrhu okna za ustvarjanje nove veje:

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

Ko je enkrat veja ustvarjena, je ustvarjanje novih pošiljanj dokaj enostavno. Naredite nekaj sprememb v vašem delovnem direktoriju in ko preklopite na okno klienta GitHub, vam bo prikazal katere datoteke so se spremenile. Vpišite sporočilo pošiljanja, izberite datoteke, ki bi jih želeli vključiti in kliknite na gumb “Commit” (ctrl-enter ali ⌘-enter).
Glavni način za interakcijo z ostalimi repozitoriji preko omrežja je skozi lastnost “Sync”. Git ima v notranjosti ločene operacije za porivanje, ujemanje, združevanje in ponovno baziranje vendar GitHub klienti strnejo vse te v eno več-koračno lastnost. Tu je, kaj se zgodi, ko kliknete na gumb Sync:
-
git pull --rebase
. If this fails because of a merge conflict, fall back togit pull --no-rebase
. -
git push
.
To je najbolj pogosta sekvenca ukazov omrežja, ko delate v tem stilu, tako da mečkanje v en ukaz vam prihrani veliko časa.
Povzetek
Ta orodja so zelo dobro primerna za potek dela za katerega so načrtovana. Podobni razvijalci in ne-razvijalci lahko sodelujejo na projektu v nekaj minutah in mnoge od najboljših praks za ta potek dela so zapečene v orodja. Vendar, če je vaš potek dela različen ali želite več kontrole nad tem kako in kdaj so operacije omrežja narejene, priporočamo, da uporabite drugega klienta ali ukazno vrstico.
Ostali GUI-ji
Na voljo je število ostalih grafičnih Git klientov in imajo celoten rang od specializiranih orodij z enim razlogom vse do applikacij, ki poskušajo izpostaviti vse kar Git lahko naredi. Uradna spletna stran Git ima točen seznam najbolj popularnih klientov na http://git-scm.com/downloads/guis. Bolj celovit seznam je na voljo na spletni strani Git wiki na https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools#Graphical_Interfaces.