JavaRush /Java Blog /Random-TK /Bulaşyklyksyz toparlaýyn iş: Gitdäki şahalandyryş strateg...

Bulaşyklyksyz toparlaýyn iş: Gitdäki şahalandyryş strategiýalaryna düşünmek

Toparda çap edildi

Giriş

Git programma üpjünçiligini döretmekde wersiýa gözegçilik etmek üçin de-fakto senagat standartyna öwrüldi. Gitiň nämedigini we nädip başlamalydygyny öwrenmek üçin ilki bilen bu hakda makalamy okaň. Okadyňyzmy? Gowy, dowam edeliň! Bulaşyklyksyz toparlaýyn iş: Git-de şahalandyryş strategiýalaryny seljermek - 1Halaýan ýa-da halamaýan Linus Towaldsyň guraly pensiýa çykmaz. Şonuň üçin paýlanan toparlaryň gitde nähili işleýändigi we munuň üçin haýsy şahalandyryş strategiýasyny saýlamalydygy barada gürleşmegiň manysy bar. Bu asla boş sorag däl. Köplenç, biri-biri bilen işleşmedik täze döredijiler toparynyň ýygnanan ýagdaýynda, şahalaşdyrmak strategiýasy çözülmeli ilkinji zatlaryň biridir. Bir strategiýanyň beýlekisinden gowudygyny subut etmek üçin agzynda köpük boljak adamlar bolar. Şonuň üçin, umuman, nämedigi hakda size maglumat bermek isleýärin.

Şahamça strategiýalary zerurmy?

Theyöne olar zerur we henizem zerur. Sebäbi topardaky bir zat bilen ylalaşmasaňyz, her kimiň islän zadyny eder:
  • isleýän şahasynda işlemek;
  • isleýän beýleki şahalaryna birleşmek;
  • käbir şahalary pozuň;
  • täzesini döretmek;
  • we ş.m. - toparyň agzalarynyň her biri gözegçiliksiz akymda.
Şonuň üçin aşakda üç strategiýa bar. Git!

GitHub akym strategiýasy

Bulaşyklyksyz toparlaýyn iş: Gitadaky şahalandyryş strategiýalaryna düşünmek - 2Şahalaşdyrmak strategiýasy, näçe geň bolsa-da, GitHub-da ileri tutulýar :) Oňa berkidilmeli düzgünler toplumy :
  1. Esasy bölümdäki kod döwülmeli we islendik wagtda ýerleşdirilmäge taýyn bolmaly (ýagny taslamany gurmaga we serwerde ýerleşdirmäge päsgel berýän kod goýup bilmersiňiz).
  2. Täze işlemegiň üstünde işlemekçi bolanyňyzda, baş şahanyň esasynda täze şahany (aýratynlyk şahasy) döretmeli we oňa manyly at bermeli. Koduňyzy ýerli ýerine ýetiriň we üýtgeşmeleriňizi uzakdaky ammarda şol bir şaha yzygiderli geçiriň.
  3. Işiň taýyndygyny we baş şaha birleşdirilip bilinjekdigini aç-açan duýanyňyzda (ýa-da ynamyňyz ýok bolsa, ýöne pikir alyşmak isleseňiz, çekiş haýyşyny şu ýerden okap bilersiňiz) açyň. edilen işler).
  4. Çekiş haýyşynda täze bir aýratynlyk tassyklanandan soň, baş şaha birleşdirilip bilner.
  5. Üýtgeşmeler esasy şaha birleşdirilende, derrew serwere ýerleşdirilmeli.
GitHub Flow-yň pikiriçe, täze bir zadyň üstünde işlemezden ozal, düzediş bolsun ýa-da täze bir aýratynlyk bolsun, ussanyň esasynda täze bir şahamça döretmeli we oňa laýyk at bermeli. Ondan soň durmuşa geçirmek boýunça işler başlar. Şol bir at bilen uzakdaky serwere yzygiderli ibermeli. Hemme zadyň taýyndygyna düşüneniňizde, baş şahada çekmek haýyşyny döretmeli. Iň bolmanda bir ýa-da has gowusy, iki adam bu koda seredip, tassyklamak düwmesine basmaly. Adatça, taslama toparynyň ýolbaşçysy we başga biri oňa seretmeli, soň bolsa çekmek haýyşyny ýerine ýetirip bilersiňiz. GitHub Flow, bir taslamada üznüksiz eltip bermek (CD) sürmek bilen hem bellidir . Sebäbi baş şahada üýtgeşmeler girizilende, derrew serwere ýerleşdirilmeli.

GitFlow strategiýasy

Bulaşyklyksyz toparlaýyn iş: Gitdäki şahalandyryş strategiýalaryna düşünmek - 3Öňki strategiýa (GitHub Flow) aslynda gaty çylşyrymly däldi. Şahalaryň iki görnüşi bar: ussat we aýratynlyk şahalary. Emma GitFlow has çynlakaý. Iň bolmanda ýokardaky suratdan muňa düşünip bilersiňiz) Şeýlelik bilen, bu strategiýa nähili işleýär? Umuman aýdanyňda, GitFlow iki sany hemişelik şahadan we birnäçe wagtlaýyn şahadan durýar (GitHub Flow kontekstinde baş şaha hemişelik we beýlekileri wagtlaýyn). Hemişelik şahalar:
  • ussat: hiç kim bu şaha degmeli däl ýa-da ol ýere hiç zat itmeli däl. Bu strategiýada ussat önümçilikde (ýagny hakyky serwerde) ulanylýan iň soňky durnukly wersiýany görkezýär;
  • ösüş ösüş şahasydyr. Durnuksyz bolup biler.
Ösüş üç sany kömekçi wagtlaýyn şahany ulanyp amala aşyrylýar :
  1. Aýratynlyk şahalary - täze işlemegi ösdürmek üçin.
  2. Şahamçalary boşatmak - taslamanyň täze wersiýasynyň çykmagyna taýýarlyk görmek.
  3. “Hotfix” şahamçalary hakyky ulanyjylar tarapyndan hakyky serwerde eýýäm tapylan kemçiligi çalt çözmekdir.

Aýratyn şahalar

Aýratynlyk şahalary täze işlemek üçin döredijiler tarapyndan döredilýär. Elmydama ösüş pudagynyň esasynda döredilmelidir. Täze işlemegiň üstünde iş gutaranyňyzdan soň, ösüş bölüminde çekmek haýyşyny döretmeli. Uly toparlarda bir gezekde birden köp aýratynlyk şahamçasynyň bolup biljekdigi düşnüklidir. GitFlow strategiýasynyň beýanynyň başynda surata ýene bir gezek üns beriň.

Şahalary boşadyň

Ösüş bölüminde zerur mukdarda täze aýratynlyklar taýýarlanylanda, önümiň täze wersiýasyny çykarmaga taýýarlanyp bilersiňiz. Bu meselede goýberiş bölümi bize kömek eder. ösüş pudagy esasynda döredilýär. Goýberiş bölümi bilen işleýän wagtyňyz ähli kemçilikleri tapmaly we düzetmeli. Goýberiş şahasyny durnuklaşdyrmak üçin zerur bolan islendik täze üýtgeşmeler hem ösüşe birleşdirilmelidir. Bu şahany durnuklaşdyrmak we ösdürmek üçin edilýär. Synagçylar şahanyň täze çykmagy üçin ýeterlik derejede durnuklydygyny aýdanda, baş şaha birleşdirilýär. Ondan soň, wersiýa belgisi berlen bu borçnamada bellik döredilýär (bellik: bu hakda has giňişleýin okap bilersiňiz ) . Mysal hökmünde, strategiýanyň başynda surata seredip bilersiňiz. Şeýlelikde, “Tag 1.0” diňe taslamanyň 1.0 wersiýasyny görkezýän bellikdir. Iň soňky zat bolsa şahanyň hotfiksi.

Hotfix şahalary

“Hotfix” şahamçalary hem ussanyň täze wersiýasyny çykarmak üçin niýetlenendir. Onlyeke-täk tapawut, bu goýberiliş meýilleşdirilmedi. Kemçilikler goýberilip, önümçilikde eýýäm ýüze çykarylan ýagdaýlar bar. Mysal üçin, iOS: täze wersiýa çykan badyna, goýberilenden soň ýüze çykarylan kemçilikleri düzetmek bilen derrew bir topar täzeleniş alarsyňyz. Bu nukdaýnazardan bu kemçiligi çalt düzetmeli we täze wersiýasyny çykarmaly. Biziň suratymyzda bu 1.0.1 wersiýasyna gabat gelýär. Bu pikir, hakyky serwerdäki kemçiligi düzetmeli pursatlaryňyzda (“önümçilikde” aýdyşymyz ýaly: ýene-de iňlis söz önümçiliginiň göçürmesi) täze funksiýalaryň üstünde işlemek durmazlygy mümkin. “Hotfix” şahasy önümçilikde işleýän döwleti görkezýänligi sebäpli, esasy şahadan döredilmeli. Kemçiligiň çözgüdi taýýar bolansoň, ussa birleşdirilýär we täze bellik döredilýär. Çykyş şahasyny taýýarlamak ýaly, hotfix şahasy öz çözgüdini ösüş şahasyna birleşdirmeli.

Forking Workflow strategiýasy

Bulaşyklyksyz toparlaýyn iş: Gitdäki şahalandyryş strategiýalaryna düşünmek - 4“Forking Workflow” strategiýasynyň bir bölegi hökmünde ösüş iki ammar bar ýaly amala aşyrylýar:
  1. Changeshli üýtgeşmeleriň birleşdiriljek asyl ammary.
  2. Çeňňek ammary (bu asyl nusgasyny üýtgetmek isleýän başga bir işläp düzüjiniň eýeçiligindäki asyl ammarynyň göçürmesi).
Şu wagta çenli birneme geň görünýär, şeýlemi? Açyk çeşme ösüşine eýýäm duş gelenler üçin bu çemeleşme eýýäm tanyş. Bu strategiýa aşakdaky artykmaçlygy üpjün edýär: ösüş ilkibaşdaky bilelikdäki ösüşe hukuk bermezden çatryk ammarynda amala aşyrylyp bilner. Elbetde, asyl ammaryň eýesiniň teklip edilýän üýtgeşmeleri ret etmäge hukugy bar. Ora-da razy bolup öldür. Bu asyl ammaryň eýesi üçinem, käbir önümiň döredilmegine gatnaşmak isleýän dörediji üçinem amatly. Mysal üçin, Linux ýadrosyna üýtgeşmeler teklip edip bilersiňiz . Linus manyly bolsa, üýtgeşmeler goşular (!!!).

Forking iş akymynyň mysaly

Forking akymy, ulanmak isleýän käbir kitaphanaňyz bar bolsa, GitHub-da ulanylýar. Doly ulanylmagyna päsgel berýän kemçilik bar. Meselä ýeterlik derejede göz aýladyňyz we çözgüdini biliň diýeliň. “Forking Workflow” strategiýasyny ulanyp, bu meseläni asyl kitaphananyň ammarynda işlemäge hukuk bermezden çözüp bilersiňiz. Başlamak üçin ammar saýlamaly, mysal üçin “ Bahar çarçuwasynyň ýadrosy” . Rightokarky sag burçdan “Fork” düwmesini tapyň we basyň: Bulaşyklyksyz toparlaýyn işlemek: Git-de şahalandyryş strategiýalaryny seljermek - 5Bu birneme wagt alar, şondan soň bu asyl ammaryň bir nusgasy peýda bolar çatrykdygyny görkezýän şahsy hasap: Bulaşyklyksyz toparlaýyn iş: Gitadaky şahalandyryş strategiýalaryna düşünmek - 6Soňra bu ammar bilen hemişeki ýaly işläp bilersiňiz, baş şahada üýtgeşmeler goşup bilersiňiz we hemme zat taýýar bolanda asyl ammarda Pull-Talap döredip bilersiňiz. Munuň üçin “New Pull” haýyş düwmesine basyň : Bulaşyklyksyz toparlaýyn iş: Gitdäki şahalandyryş strategiýalaryna düşünmek - 7

Haýsy strategiýany saýlamaly

Git, dürli amallary we strategiýalary ulanyp işlemäge mümkinçilik berýän çeýe we güýçli guraldyr. Theöne saýlamak näçe uly bolsa, häzir haýsy strategiýany saýlamalydygyny kesgitlemek kyn. Elbetde, bir ölçegli jogap ýok. Bularyň hemmesi ýagdaýa bagly. Muňa garamazdan, bu meselede kömek edip biljek birnäçe maslahat bar:
  1. Ilki bilen iň ýönekeý strategiýany saýlamak has gowudyr. Diňe zerur bolanda has çylşyrymly strategiýalara geçiň.
  2. Mümkin boldugyça az dörediji şahalary bolan strategiýalara serediň.
  3. Dürli strategiýalaryň oňaýly taraplaryna serediň we taslama laýyklykda dogry birini saýlaň.
Gitdäki şahalandyryş strategiýasy barada size aýtmak islän zadym. Üns bereniňiz üçin sag boluň :) GitHub hasabyma ýazylyň , köplenç işimi ulanýan dürli tehnologiýalara we gurallara işimi şol ýere iberýärin

peýdaly baglanyşyklar

Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION