To'g'ri Git dallanish strategiyasini tanlang

Muallif: Monica Porter
Yaratilish Sanasi: 21 Mart Oyi 2021
Yangilanish Sanasi: 17 Mayl 2024
Anonim
To'g'ri Git dallanish strategiyasini tanlang - Ijodiy
To'g'ri Git dallanish strategiyasini tanlang - Ijodiy

Tarkib

Git - bu ajoyib vosita. Resurslarni boshqarish vositalari bir nechta muhim xususiyatlarni taqdim etadi: kodni saqlash joyi, o'zgarishlar tarixi va kim nima qilgani haqida ma'lumot. Agar siz va sizning jamoangiz xabarlarni yaxshi bajaradigan bo'lsa, unda nima uchun o'zgartirish kiritilganligi to'g'risida bonusli ma'lumot olishingiz mumkin. Git va Mercurial kabi tarqatilgan vositalar, shuningdek, ko'plab omborlar o'rtasida hamkorlik qilish uchun ko'plab imkoniyatlarni taqdim etadi, shuningdek filiallar bilan ishlashning samarali usullarini taqdim etadi.

Xo'sh, Gitdagi filial nima? 1-rasmga qarang. Git-dagi filial shunchaki majburiyatning ko'rsatkichidir. Agar ".git" katalogida filial qanday ko'rsatilishini ko'rib chiqsangiz, filial bilan bir xil nomdagi matnli faylni topasiz, shunchaki ushbu "uchi" ning aniqlovchi identifikatorini yoki eng yangi majburiyatni o'z ichiga oladi. . Filialning o'zi shu bitta majburiyatning nasl-nasabini aniqlash orqali yaratiladi, chunki har bir majburiyat qaysi sodir bo'lganidan keyin sodir bo'lganligini biladi.


Murabbiy sifatida mendan doim so'raladigan narsa - bu "to'g'ri" Gitning tarmoqlanish strategiyasi nima. Mening maslahatim jamoaga va vaziyatga bog'liq ravishda juda ko'p farq qiladi, ammo vaqti-vaqti bilan namoyon bo'ladigan ba'zi bir odatiy naqshlar mavjud. Ushbu xabar ushbu naqshlarni aks ettiradi va ular eng foydali bo'lishi mumkin bo'lgan vaziyatlarni tushuntiradi.

GitHub oqimi bilan oddiy boshlang

Scott Chacon-dan blog posti bilan mashhur bo'lgan GitHub Flow mening sevimli tarmoqlanish strategiyam. Nima uchun? Bu juda muhim, chunki u hali ham barcha muhim asoslarni qamrab oladi. GitHub Flow shunchaki biron bir xususiyat yoki xato tuzatishda ishlayotganda filial yaratishingiz kerakligini aytadi.

Tugatgandan so'ng, u yana birlashma majburiyati bilan masterga birlashtiriladi. Bu jamoalar va shaxslar uchun alohida funktsiyalarni xavfsiz yaratish va hamkorlik qilish va ularni tugatgandan so'ng etkazib berishning juda oson usuli. U 2-rasmdagi kabi ko'rinadigan grafik yaratadi.


Ushbu "mavzu" shoxlari ancha uzoq umr ko'rishlari mumkin, ammo shuni yodda tutingki, filial magistrdan qancha uzoqlashsa, xususiyat tushganda to'qnashuvlar shunchalik katta bo'ladi. Qoida shundan iboratki, magistral filial har doim joylashtirilishi mumkin, shuning uchun funktsiyalar birlashtirilishidan oldin tugatilishi va yaxshilab tekshirilishi kerak. Yangi xususiyat masterga birlashtirilgandan so'ng, darhol yangi kod bazasini joylashtirish odatiy holdir. Buning uchun siz haqiqiy uzluksiz tarqatish yondashuvini o'rnatishingiz yoki oddiy avtomatik joylashtirish jarayonini o'rnatishingiz mumkin, shunda kod tez-tez ishlatilishi mumkin.

Laura Tomsonning blogida buni "potentsial uzluksiz joylashtirish" deb ta'riflaydigan ajoyib maqola bor. Kodni kuniga bir necha marta jonli platformalarda tarqatish odatiy hol deb hisoblanmaydi.

Ushbu model hatto "tuzatish" uchun shoxlanishni - tezkor, bir martalik o'zgarishlarni himoya qilishni qo'llab-quvvatlaganligi sababli, u o'z-o'zidan grafik naqsh hosil qiladi. 3-rasm, rivojlanish yo'nalishi bo'yicha faqat bitta majburiyatli burilish mavjud bo'lgan misolni aks ettiradi.


Nima uchun kimdir filialda bitta majburiyat yaratib, uni to'g'ridan-to'g'ri masterga o'zgartirish o'rniga, uni birlashtirish majburiyati bilan birlashtirishi kerak? Ajralishning ba'zi bir falsafiy sabablari bor, lekin men uchun ikkita asosiy afzallik bor.

Birinchidan, filialni yaratish, tortishish haqidagi so'rovni ochish va o'zgarishlarni birlashtirilishidan oldin ko'rib chiqish / qayta ko'rib chiqish / QA olish imkoniyatini beradi. Ikkinchidan, agar siz o'zgartirishni xohlamasangiz yoki boshqa joyda bir xil o'zgarishlarni amalga oshirishni xohlasangiz, ikkala narsa ham to'g'ridan-to'g'ri usta tomonidan bajarilgandan ko'ra, filial bilan osonroq bo'ladi.

Atrof muhit shoxlari

Buni "Branch per Platform" modeli deb atashni yaxshi ko'raman. Magistral filialdan tashqari, jonli platformani kuzatib boradigan filiallar, shuningdek sizning ish oqimingizda foydalanadigan boshqa platformalar (masalan, sinov, sahnalashtirish va integratsiya) mavjud. Buning uchun usta sizning loyihangizning qon ketishida qoladi, ammo funktsiyalar tugallangandan so'ng, siz boshqa platformalarga mos ravishda qo'shilasiz (4-rasmga qarang).

Buning afzalligi shundaki, sizda har doim ma'lum bir platformani kuzatib boradigan filial mavjud bo'lib, bu muammoni, masalan, jonli efirda aniqlansa, uni tezda hal qilishni osonlashtiradi. Tuzatishning asosi sifatida jonli filialdan foydalanib, siz mavjud kod bazasini va bitta bitta o'zgarishni osongina joylashtirishingiz mumkin. Jonli platformani ajratib bo'lgach, siz masterni va atrof-muhitning boshqa filiallarini tuzatishingiz mumkin. Bu shuni anglatadiki, siz jonli platformada nima borligini taxmin qilishga urinib ko'rsangiz yoki to'g'ridan-to'g'ri jonli ravishda g'alati tuzatish qilsangiz!

Teglar bilan belgilash

Shunga o'xshash alternativa - bu sizning relezlaringizni yaratishda ularni belgilash uchun teglardan foydalanish. Shu tarzda, siz jonli efirda bo'lgan versiyalar tarixiga nazar tashlashingiz mumkin. Aslida, GitHub-da buning uchun maxsus sahifa mavjud. Ushbu uslub, ayniqsa, kutubxona nashrlarini belgilash uchun ishlatiladi.

PHP uchun Composer kabi boshqa vositalar teglardan yangi chiqarilgan versiyani olish va taqdim etish uchun foydalanadi, shuning uchun teglardan to'g'ri foydalanish muhimdir. Teglar sizning o'zingizning loyihalaringizda ham foydali bo'lishi mumkin, ehtimol sizning qurilish yoki joylashtirish vositalaringizni filialdagi har qanday majburiyat o'rniga, faqat aniq nomlangan teglarga javob berish uchun sozlashingiz mumkin.

Birlashtirish majburiyatmi yoki yo'qmi?

Git-dan foydalanish bizga ushbu xususiyatlarning qanday qilib qurilganligi va birlashtirilganligidan qat'i nazar, har qanday tartibda o'zgarishlarni birlashtirish imkoniyatini beradi. Bu bizga tarixni qayta yozishga imkon beradi, bu esa toza va chiroyli grafika foydalari to'g'risida cheksiz tortishuvlarga olib keladi va aslida sodir bo'lgan voqeani aks ettiradi.

Yorliqlar va bo'shliqlar o'rtasidagi argumentga biroz o'xshash, bu argument bir muncha vaqt ishlashi mumkin va ishlaydi. Ya'ni, munozaraning ikkala tomoni ham yaxshi natijalarga ega va bu sizning jamoangiz ishlash uslubini standartlashtirishda muhim ahamiyatga ega.

Buning biron bir ma'nosi bo'lishi uchun, avval Git-da birlashtirish majburiyatlari haqida gapirishimiz kerak. Barcha Git majburiyatlari identifikatorlarga ega - bu olti burchakli satrlar - va ular noyobdir. Ular o'zgartirishlar, majburiyatlar to'g'risidagi ma'lumot, muallif, vaqt tamg'asi va ota-ona majburiyatlari haqida ma'lumotdan iborat.

Bu shuni anglatadiki, agar bir xil majburiyat boshqa ota-onaga nisbatan qo'llanilsa, natijada olingan kod bir xil bo'lsa ham, yangi majburiyat boshqa identifikatorga ega bo'ladi. Birlashtirish majburiyatlarida bitta emas, ikkita ota-ona bor.

Jurnalda ular quyidagicha ko'rinadi:

commit 41ea02cc8a1d2964c4f7b46b5f6b11cc04327959 Birlashtirish: a8d1421 e71dbf5 Muallif: Lorna Mitchell [email protected]> Sana: 22-dekabr, dushanba 19:48:34 2014 +0000 Merge filiali 'akrabat-update-homepage-with-open-cps

Birlashtirishni boshlaydigan majburiy xabarda qo'shimcha qatorga e'tibor bering: .... Ikkala raqam - bu majburiyat uchun ikkita ota-onaning majburiyatlari - filiallarning har biridan bittadan birlashtirilgan.

Oldinga tez birlashmalar

Biroq, birlashish har doim ham bunga o'xshamaydi. Agar filialda o'zgarishlar bo'lsa, lekin masalan, asosiy filialda bo'lmasa, unda "tezkor oldinga qo'shilish" amalga oshiriladi. Biz ushbu vaziyatdan boshlaymiz: xususiyatlar filialidagi o'zgarishlar, lekin masterda emas (5-rasmda ko'rsatilgandek). Agar biz Gitdan ushbu filialni birlashtirishni so'rasak, u "tezkor" bo'ladi.

Birlashish sodir bo'lganda, birlashma kerak emas. Xususiyat sohasidagi majburiyatlar magistral filialdagi eng yangi majburiyatdan boshlab davom etadi va chiziqli tarixga ega bo'ladi. Shuning uchun tez oldinga boring, usta yorlig'ini xususiyatlar shoxchasining uchiga o'tkazing, shunda biz u erdan davom etamiz (6-rasm). Agar siz an'anaviyroq birlashma modelini olishni maqsad qilsangiz, buni -no-ff tugmasi yordamida majburlashingiz mumkin. Bu 7-rasmga o'xshash tarixni yaratadi.

--No-ff tugmasi Git-ga tez oldinga emas, aksincha birlashish majburiyatini yaratish kerakligini aytadi. Ko'pgina tarmoqlanish strategiyalari ushbu texnikani filiallar birlashganda qo'llashni talab qiladi. Ko'pincha, baribir biz birlashish majburiyatini bajarishga muhtojmiz, chunki biz ikkala xususiyat filialida ham, biz qo'shilayotgan filialda ham o'zgarishlar yuz berdi. Ba'zi hollarda - men uchun bu odatda tuzatish filialini yaratishda bo'ladi - birlashma majburiyatini tarixni aniq qaysi filialga qaerga birlashtirilganligini aniq ko'rsatib berishga majbur qilish foydali bo'lishi mumkin.

Dallanish strategiyalari

Ehtimol, eng taniqli tarmoqlanish strategiyasi - bu juda keng qamrovli strategiya bo'lgan Git Flow. Xullas, uni to'g'ri ishlatish uchun to'liq ssenariylar to'plami kerak! Mening tajribamga ko'ra, Git Flow bir vaqtning o'zida bir nechta versiyalarda muammolarni hal qiladigan juda katta va texnik jihatdan rivojlangan jamoalar uchun juda muhimdir.

Biroq, men amalga oshirgan har bir tarmoqlanish strategiyasi ushbu yondashuvdan g'oyalarni keltirib chiqardi va men ushbu maqolada ularni buzishga harakat qildim.

Tarmoqlanish strategiyasining o'zi bu jarayon; hujjat. Bu erda siz jamoaviy ravishda o'zingizning yondashuvingizni va kodingizni ishlab chiqarish, kuzatib borish va jo'natish uslubiga munosabatingizni aks ettiradigan joy. Har bir inson jarayondagi harakatlanuvchi qismlarning har biri qanday ishlashini (hech bo'lmaganda kod darajasida - ijtimoiy va siyosiy masalalar boshqa maqola uchun mavzu) va barchangiz maqsad qilgan maqsadga erishish uchun qanday hamkorlik qilishni tushunadi. Tarmoqlanish strategiyasi kompaniya vikisidagi sahifa kabi oddiy bo'lishi mumkin - bu sizning ishlash uslubingizga tuzilma beradi. Bundan tashqari, Git cheethey-ni turli xil qadamlarni qanday bajarish uchun joylashtirish uchun ajoyib joy bo'lishi mumkin.

Mening fikrimcha, tarmoqlanish strategiyasining mavjud bo'lishi ish sifatini ham, jamoaning ishonchi va aloqasini ham yaxshilaydi. O'zingizning strategiyangizni rozi qilish va yozib olish uchun ozgina vaqt ajrating va keyin oldingisiga qaraganda dahshatli bo'ling.

So'zlar: Lorna Mitchell

Lorna Mitchell - PHP, API va Git-ga ixtisoslashgan muallif, murabbiy va ishlab chiquvchi. O'zingizning malakangizni oshirish uchun amaliy mashqlarni o'z ichiga olgan Git Workbook-ni o'qib, undan ko'proq yordam olishingiz mumkin. Ushbu maqola dastlab net jurnalining 267-sonida chop etilgan.

Bu sizga yoqdimi? Buni o'qing!

  • Git versiyasini boshqarish bilan boshlang
  • Qanday qilib rasm chizish va bo'yash kerak - 90 ta maslahat va qo'llanmalar
  • Blogni qanday boshlash kerak
Bugun Qiziqarli
2017 yilning eng yaxshi 7 ta shrifti
Kashf Qilmoq

2017 yilning eng yaxshi 7 ta shrifti

Har qanday dizayn elementi ingari, barchamizda eng evimli hriftlar mavjud. Ammo izning i hingiz e kiri hini i tamay iz. hunday qilib, bozorga chiqi h uchun eng o'nggi yangi hriftlarni tek hiri h v...
Google yangi mahsulotlar haqida xabar beradi
Kashf Qilmoq

Google yangi mahsulotlar haqida xabar beradi

Bugungi kunda katta e'lon - bu Google+, qidiruv gigantining ijtimoiy tarmoqdagi eng yangi hujumi, ammo bu bilan bog'liq hov- huvda yana ikkita qiziqarli mah ulot: Google Web Font va wiffy.Endi...
Yaxshi manga belgilariga oid 15 ta maslahat
Kashf Qilmoq

Yaxshi manga belgilariga oid 15 ta maslahat

O'zingizning xarakterli dizayningizni yaratmoqchi bo'lgan intiluvchan ra om uchun hunchaki manga hablonini ulgurji oti hga erga hi h mumkin. huni ta'kidla h kerakki, yax hi manga an'at...