Git
Chapters ▾ 2nd Edition

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.

A linear view of progressive-stability branching.
Figure 26. A linear view of progressive-stability branching

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.

A ``silo'' view of progressive-stability branching.
Figure 27. A “silo” view of progressive-stability branching

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:

Multiple topic branches.
Figure 28. Multiple topic branches

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:

History after merging `dumbidea` and `iss91v2`.
Figure 29. History after merging 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.