JavaRush /Java блогы /Random-KK /Шатасусыз топтық жұмыс: Git-те тармақталу стратегияларын ...
Roman Beekeeper
Деңгей

Шатасусыз топтық жұмыс: Git-те тармақталу стратегияларын түсіну

Топта жарияланған

Кіріспе

Git бағдарламалық жасақтаманы жасауда нұсқаларды басқарудың іс жүзінде салалық стандартына айналды. Гит деген не және оны қалай бастау керектігі туралы білу үшін алдымен ол туралы менің мақаламды оқыңыз. Сіз оны оқыдыңыз ба? Керемет, әрі қарай жүрейік! Шатастырусыз топтық жұмыс: Git-те тармақталу стратегияларын талдау - 1Ұнаса да, қаламаса да, Линус Товалдс жасаған аспап зейнетке шықпайды. Сондықтан, git-те бөлінген командалар қалай жұмыс істейтіні және бұл үшін қандай тармақталу стратегиясын таңдау керектігі туралы айту орынды. Және бұл бос сұрақ емес. Көбінесе, бір-бірімен жұмыс істемеген әзірлеушілердің жаңа командасы жиналған жағдайда, тармақталу стратегиясы шешім қабылдауды қажет ететін бірінші нәрселердің бірі болып табылады. Бір стратегияның екіншісінен жақсы екенін дәлелдеу үшін аузынан көбік шығатын адамдар болады. Сондықтан мен сізге олардың жалпы не екендігі туралы ақпаратты жеткізгім келеді.

Тармақтану стратегиялары қажет пе?

Бірақ олар қажет және олар әлі де қажет. Өйткені командада бірдеңеге келіспесеңіз, әркім өз қалағанын жасайтын болады:
  • өзі қалаған фorалда жұмыс істеу;
  • өзі қалаған басқа фorалдарға біріктіру;
  • кейбір фorалдарды жою;
  • жаңаларын жасау;
  • және т.б. — команда мүшелерінің әрқайсысы бақыланbyteын ағында.
Сондықтан төменде үш стратегия бар. Бар!

GitHub Flow стратегиясы

Шатасусыз топтық жұмыс: Гитадағы тармақталу стратегияларын түсіну - 2Тармақталу стратегиясы, ол қаншалықты таңқаларлық болса да, GitHub-да артықшылық береді :) Оған ұстануды қажет ететін ережелер жинағы қоса берілген:
  1. Негізгі бөлімшедегі code үзілмеген және кез келген уақытта қолдануға дайын болуы керек (яғни, жобаны құруға және оны serverде орналастыруға кедергі келтіретін codeты ол жерге қоюға болмайды).
  2. Жаңа функциямен жұмыс істеуді жоспарлағанда, негізгі тармақ негізінде жаңа тармақты (функция тармағы) жасап, оған мағыналы атау беру керек. Кодты жергілікті түрде орындаңыз және өзгертулерді қашықтағы репозиторийдегі бір фorалға жүйелі түрде жіберіңіз.
  3. Жұмыстың дайын екенін және негізгі бөлімге біріктіруге болатынын анық сезгенде (немесе сенімді болмасаңыз, бірақ кері байланыс алғыңыз келсе) Pull-Request-ті ашыңыз (бұл жерден тарту сұрауының не екенін оқуға болады ) . орындалған жұмыс).
  4. Тарту сұрауындағы жаңа мүмкіндік бекітілгеннен кейін оны негізгі тармаққа біріктіруге болады.
  5. Өзгерістер негізгі тармаққа біріктірілгенде, оларды дереу serverге орналастыру керек.
GitHub Flow мәліметтері бойынша, жаңа нәрсемен жұмыс істеуді бастамас бұрын, ол түзету немесе жаңа мүмкіндік болсын, мастер негізінде жаңа фorал жасап, оған лайықты атау беру керек. Әрі қарай, енгізу бойынша жұмыс басталады. Бір атпен қашықтағы serverге міндеттемелерді үнемі итермелеу керек. Барлығы дайын екенін түсінген кезде, негізгі бөлімде тарту сұрауын жасау керек. Содан кейін кем дегенде бір немесе одан да жақсысы екі адам осы codeты қарап, «Бекіту» түймесін басыңыз. Әдетте, жобаның топ жетекшісі және басқа біреу оған қарауы керек, содан кейін тарту сұрауын орындауға болады. GitHub Flow сонымен қатар жобада үздіксіз жеткізуді (CD) жүргізумен танымал . Өйткені негізгі тармаққа өзгертулер енгізілгенде, олар дереу serverге орналастырылуы керек.

GitFlow стратегиясы

Шатастырусыз топтық жұмыс: Git-те тармақталу стратегияларын түсіну - 3Алдыңғы стратегия (GitHub Flow) өте күрделі емес еді. Бұтақтардың екі түрі бар: негізгі және ерекше тармақтар. Бірақ GitFlow маңыздырақ. Кем дегенде, жоғарыдағы суреттен мұны түсінуге болады) Сонымен, бұл стратегия қалай жұмыс істейді? Жалпы алғанда, GitFlow екі тұрақты тармақтан және уақытша тармақтардың бірнеше түрінен тұрады (GitHub Flow контекстінде негізгі тармақ тұрақты, ал қалғандары уақытша). Тұрақты фorалдар:
  • шебер: бұл бұтаққа ешкім қол тигізбеуі немесе ол жерде ештеңені итермеу керек. Бұл стратегияда мастер өндірісте (яғни нақты serverде) қолданылатын соңғы тұрақты нұсқаны көрсетеді;
  • даму – даму саласы. Ол тұрақсыз болуы мүмкін.
Әзірлеу үш қосалқы уақытша тармақтардың көмегімен жүзеге асырылады :
  1. Мүмкіндік тармақтары - жаңа функцияларды әзірлеуге арналған.
  2. Шығару фorалдары - жобаның жаңа нұсқасын шығаруға дайындалу.
  3. Түзету тармақтары - бұл нақты serverде нақты пайдаланушылар тапқан ақауды жылдам шешу.

Ерекшелік тармақтары

Мүмкіндік тармақтарын әзірлеушілер жаңа функционалдылық үшін жасайды. Олар әрқашан даму саласының негізінде құрылуы керек. Жаңа функция бойынша жұмысты аяқтағаннан кейін әзірлеу тармағында тарту сұрауын жасау керек. Үлкен командаларда бір уақытта бірнеше функция тармағы болуы мүмкін екені анық. GitFlow стратегиясының сипаттамасының басындағы суретке тағы да назар аударыңыз.

Бұтақтарды босатыңыз

Әзірлеу бөлімінде жаңа мүмкіндіктердің қажетті саны дайындалған кезде, өнімнің жаңа нұсқасын шығаруға дайындалуға болады. Бұл бізге шығару бөлімі көмектеседі. даму саласы негізінде құрылған. Шығару тармағымен жұмыс істеу кезінде сіз барлық ақауларды тауып, жоюыңыз керек. Шығарылым тармағын тұрақтандыру үшін қажет кез келген жаңа өзгерістер де әзірлеуге қайта біріктірілуі керек. Бұл саланы тұрақтандыру және дамыту мақсатында жасалып отыр. Сынақшылар фorалдың жаңа шығарылым үшін жеткілікті тұрақты екенін айтқан кезде, ол негізгі тармаққа біріктіріледі. Әрі қарай, осы міндеттемеде тег жасалады (тег: ол туралы толығырақ мына жерден оқи аласыз ), оған нұсқа нөмірі тағайындалады. Мысал ретінде стратегияның басындағы суретті қарауға болады. Сонымен, 1.0 тегі жобаның 1.0 нұсқасын көрсететін белгі ғана. Және соңғы нәрсе - тармақты түзету.

Түзету тармақтары

Түзету тармақтары сонымен қатар мастерде жаңа нұсқаны шығаруға арналған. Жалғыз айырмашылығы - бұл шығарылым жоспарланбаған. Ақаулар шығарылатын және өндірісте табылған жағдайлар бар. Мысалы, iOS: олар жаңа нұсқаны шығара салысымен, сіз бірден шығарылғаннан кейін анықталған ақаулар түзетілген жаңартулар жиынтығын аласыз. Осыған байланысты бұл кемшілікті тез арада түзетіп, жаңа нұсқасын шығару қажет. Біздің суретте бұл 1.0.1 нұсқасына сәйкес келеді. Идея мынада: жаңа функционалдылық бойынша жұмыс нақты serverдегі ақауды түзету қажет болған сәтте тоқтап қалмауы мүмкін (біз айтқандай, «өндірісте»: тағы да ағылшын тілінде production сөзінің көшірмесі). Түзету тармағы негізгі тармақтан жасалуы керек, себебі ол өндірісте жұмыс істейтін күйді білдіреді. Ақаулықты жою шешімі дайын болғаннан кейін ол шеберге біріктіріліп, жаңа белгі жасалады. Шығарылым тармағын дайындау сияқты, түзету тармағы өз шешімін әзірлеу тармағына біріктіруі керек.

Forking Workflow стратегиясы

Шатастырусыз топтық жұмыс: Git-те тармақталу стратегияларын түсіну - 4Forking Workflow стратегиясының бөлігі ретінде әзірлеу екі репозиторий болатындай жүзеге асырылады:
  1. Барлық өзгертулер біріктірілетін бастапқы репозиторий.
  2. Шанышқы репозиторийі (бұл түпнұсқаға өзгертулер енгізгісі келетін басқа әзірлеушінің иелігіндегі түпнұсқа репозиторийдің көшірмесі).
Әзірге біртүрлі естіледі, солай ма? Ашық бастапқы codeты әзірлеуге тап болғандар үшін бұл тәсіл бұрыннан таныс. Бұл стратегия келесі артықшылықты қамтамасыз етеді: әзірлеу бастапқыда бірлескен әзірлеуге құқық бермей-ақ шанышқы репозиторийінде жүзеге асырылуы мүмкін. Әрине, бастапқы репозиторийдің иесі ұсынылған өзгертулерден бас тартуға құқылы. Немесе келісіп, оларды өлтіріңіз. Бұл бастапқы репозиторийдің иесіне де, қандай да бір өнімді жасауға қатысқысы келетін әзірлеушіге де ыңғайлы. Мысалы, Linux ядросына өзгертулер ұсынуға болады . Егер Линус олардың мағынасы бар деп шешсе, өзгертулер қосылады (!!!).

Айналмалы жұмыс үрдісінің мысалы

Forking Flow GitHub жүйесінде пайдаланғыңыз келетін кітапхана болған кезде пайдаланылады. Оның толық пайдалануға кедергі келтіретін ақауы бар. Мәселені жеткілікті түрде зерттеп, шешімін білдіңіз делік. The Forking Workflow стратегиясын пайдалану арқылы сіз бұл мәселені түпнұсқа кітапхана репозиторийінде жұмыс істеу құқығынсыз шеше аласыз. Бастау үшін репозиторийді таңдау керек, мысалы, Spring Framework өзегі .Жоғарғы оң жақ бұрыштағы «Шанышқы» түймесін тауып, оны басыңыз: Шатастырусыз топтық жұмыс: Git-те тармақталу стратегияларын талдау - 5Бұл біраз уақыт алады, содан кейін осы түпнұсқа репозиторийдің көшірмесі сіздің компьютеріңізде пайда болады. жеке шот, бұл оның шанышқы екенін көрсетеді: Шатасусыз топтық жұмыс: Гитадағы тармақталу стратегияларын түсіну - 6Содан кейін сіз бұл репозиториймен әдеттегідей жұмыс істей аласыз, негізгі тармаққа өзгертулер енгізе аласыз және бәрі дайын болғанда, бастапқы репозиторийге тарту сұрауын жасаңыз. Ол үшін Жаңа тарту сұрауы түймесін басыңыз : Шатасусыз топтық жұмыс: Git-те тармақталу стратегияларын түсіну - 7

Қандай стратегияны таңдау керек

Git - кең ауқымды процестер мен стратегияларды пайдалана отырып жұмыс істеуге мүмкіндік беретін икемді және қуатты құрал. Бірақ таңдау неғұрлым көп болса, қазір қандай стратегияны таңдау керектігін шешу қиынырақ. Барлығына бірдей жауап жоқ екені анық. Мұның бәрі жағдайға байланысты. Дегенмен, бұл мәселені шешуге көмектесетін бірнеше кеңестер бар:
  1. Алдымен ең қарапайым стратегияны таңдаған дұрыс. Қажет болған жағдайда ғана күрделірек стратегияларға көшіңіз.
  2. Әзірлеушілер тармақтарының мүмкіндігінше аз түрлері бар стратегияларды қарастырыңыз.
  3. Әртүрлі стратегиялардың оң және теріс жақтарын қараңыз және жобаға сәйкес дұрысын таңдаңыз.
Міне, мен сізге git-тегі тармақталу стратегиясы туралы айтқым келді. Назарларыңызға рахмет :) Менің GitHub тіркелгіме жазылыңыз , мен өз жұмысымды сол жерде өз жұмысымда қолданатын әртүрлі технологиялар мен құралдарға жиі орналастырамын.

пайдалы сілтемелер

Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION