-
1. Pričetek
- 1.1 O nadzoru različic
- 1.2 Kratka zgodovina Gita
- 1.3 Kaj je Git?
- 1.4 Ukazna vrstica
- 1.5 Git namestitev
- 1.6 Prva namestitev 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 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 Razdeljeni 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 Gita
- 8.1 Git Configuration
- 8.2 Git Attributes
- 8.3 Kljuke Git
- 8.4 An Example Git-Enforced Policy
- 8.5 Povzetek
-
9. Git in ostali sistemi
- 9.1 Git kot klient
- 9.2 Migracija na Git
- 9.3 Povzetek
-
10. Notranjost Gita
- 10.1 Napeljava in keramika
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Povzetek
-
A1. Dodatek A: Git v drugih okoljih
- A1.1 Grafični vmesniki
- A1.2 Git v programu 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 vododovodne sisteme
3.4 Veje Git - Potek dela z vejami
Potek dela z vejami
Sedaj, ko imate osnove vej in združevanja, kaj lahko ali bi morali narediti z njimi? V tej sekciji bomo pokrili nekaj skupnih potekov dela, kar ta lahkotna razvejanja omogočajo, da se lahko odločite, če bi ga želeli vkomponirati v vaš lastni razvojni cikel.
Dolgo trajajoče veje
Ker Git uporablja enostavno tri-načinsko združevanje, je združevanje iz ene veje v drugo večkrat skozi daljšo časovno obdobje v splošnem enostavno. To pomeni, da imate nekaj bej, ki so vedno odprte in da jih uporabljate za različne faze vašega razvojnega cikla; lahko združite pogostokrat iz nekaj njih v druge.
Mnogi Git razvijalci imajo potek dela, ki objema ta pristop, kot je imetje samo kode, ki je v celoti stabilna v njihovi master
veji - verjetno samo koda, ki je bila ali bo izdana.
Imajo drugo vzporedno vejo imenovano develop
ali next
, iz katere delajo ali uporabljajo za testiranje stabilnosti - ni potrebno vedno stabilna, vendar kadarkoli doseže stabilno stanje, je lahko združena v master
.
Uporabljena je za poteg tematske beje (kratko trajajoče veje, kot vaša prejšnja veja iss53
), ko so pripravljeni, da zagotovijo, da gre skozi vse teste in ne predstavlja novih hroščev.
V realnosti, govorimo o kazalcih, ki se premikajo gor po črti pošiljanja, ki ga delate. Stabilne veje so nižje na črti v vaši zgodovini pošiljanja in najnovejše veje so na vrhu zgodovine.

V splošnem je enostavnejše razmišljati o njih kot delovnih silosih, kjer so skupki pošiljanja absolvirajo k bolj stabilnim silosom, ko so v celoti testirani.

Lahko nadaljujete s takim delom na mnogih nivojih stabilnosti.
Nekateri večji projekti imajo tudi vejo proposed
ali pu
(proposed updates), ki ima integrirano vejo, ki še ni pripravljena, da gre v vejo next
ali master
.
Ideja je, da vaše veje so na različnih nivojih stabilnosti; ko dosežejo bolj stabilen nivo, so združene v vejo nad njimi.
Ponovno, imeti več dolgo trajajočih vej ni potrebno, vendar je pogostokrat v pomoč, posebej kot imate opravka z velikimi in kompleksnimi projekti.
Tematske veje
Tematske veje na drugi strani so uporabne v projektih karkšnihkoli velikosti. Tematska veja je kratko trajajajoča veja, ki ste jo izdelali in uporabljate za eno določeno lastnost ali povezano delo. To je nekaj, kar verjetno še nikoli niste počeli z VCS prej, ker je v splošnem predrago za izdelati in združevati veje. Vendar v Git-u je pogosto izdelati, delati na, združiti in izbrisati veje nekajkrat na dan.
To ste videli v zadnji sekciji pri ustvarjanju vej iss53
in hotfix
.
Naredili ste nekaj pošiljanj na njih in jih takoj izbrisali po združitvi v glavno vejo.
Ta tehnika vam omogoča kontekstni preklop hitro in v celoti - ker je vaše delo razdeljeno v nekaj silosov, kjer vse spremembe v tej veji morajo biti povezane z določeno temo, je enostavnejše videti, kaj se je zgodilo med pregledom kode in podobnim.
Lahko sledite spremembam tam nekaj minut, dni ali mesecev in jih združite, ko ste pripravljeni ne glede na vrstni red v katerem ste ustvairli ali delali na njem.
Premislite o primeru, ko delate na nekem delu (na master
), razvejate za težavo (iss91
), delate ne njej za nekaj časa, razvejate drugo vejo, da poskusite drug način upravljanja z isto stvarjo (iss91v2
), se vrnete na vašo vejo master in delate tam nekaj časa in nato razvejate, da naredite nekaj dela za katerega niste prepričani, da je dobra ideja (veja dumbidea
).
Vaša zgodovina pošiljanja bo izgledala nekako takole:

Sedaj recimo, da se odločite, da imate raje drugo rešitev za vašo težavo (iss91v2
); in ste pokazali vejo dumbidea
vašim sodelavcem in se izkaže, da je genialna.
Lahko vržete stran originalno vejo iss91
(izgubite nekaj pošiljanja C5
in C6
) ter združite v drugi dve.
Vaša zgodovina potem izgleda takole:

dumbidea
and iss91v2
Šli bomo v več podrobnosti o različnih možnih potekih dela za vaš Git projekt v Distribuirani Git, tako da preden se odločite, katero shemo razvejanja bo vaš naslednji projekt uporabljal, bodite pozorni, da preberete to poglavje.
Pomembno si je zapomniti, da ko delate vse to, da te veje so v celoti lokalne. Ko razvejujete in združujete, je vse narejeno samo v vašem Git repozitoriju - ne dogaja se nobena komunikacija s strežnikom.