گیت و بقیه ورژن سیستم کنترل ها به توسعه دهنده های نرم افزار قدرت مدیریت کردن، پیگیری کردن و سازماندهی کردن کد رو دادن.
البته، هر توسعه دهنده و تیم توسعه متفاوتن و نیاز های منحصر به فردی دارن، اینجا هست که استراتژی گیت برنچینگ پا به میدون میذاره.
اینجا میخوام درباره سه تا از محبوب ترین استراتژی های برنچینگ گیت صحبت کنم، هر کدوم با فواید خودش.بهترین قسمت؟ هیچ کدوم از این workflow ها حکم اسمونی نیستن و میتونن با توجه به نیاز های هر شخص یا تیم تغییر کنن که بهترین نتیجه رو ارائه بدن.
نکته: در این مقاله به جای master از main استفاده شده.
ایده اصلی پشت Git flow branching strategy این هست که کار رو روی انواع مختلف برنچ ایزوله کرد.
درکل پنج نوع برنچ مختلف وجود داره:
دو تا برنچ اصلی داخل استراتژی Git flow، برنچ های main و develop هستن. سه نوع برنچ ساپورتینگ هم با اهداف مختلف وجود دارن : feature, release, and hotfix.
استراتژی Git flow مزیت های زیادی داره اما با خودش یه سری چالش هم میاره.
مزایای استفاده از Git flow:
چالش های استفاده از Git flow:
استراتژی GitHub flow نسبتا workflow ساده ای هست که اجازه میده تیم های کوچیک تر، یا وب اپلیکیشن/پروژه هایی که نیاز ندارن از چند ورژن مختلف ساپورت کنن، سرعت توسعه اشون رو تسریع کنن.
در استراتژی GitHub flow، برنچ main همیشه شامل کد اماده production هست.
بقیه برنچ ها یعنی فیچر برنچ ها باید شامل کار روی فیچر های جدید و فیکس کردن باگ ها باشن و وقتی کار روشون تموم شد و review شدن روی برنچ main مرج بشن.
هنگام کار با استراتژی GitHub flow، شش تا اصل هستن که باید بهشون پایبند باشید تا مطمئن بشید کد خوبی رو maintain کرده اید.
۲. برای کار جدید روی پروژه یه برنچ با اسم گویا بسازید مثل new-oauth2-scopes
.
۳. کار جدیدتون رو روی برنچ لوکال commit کنید و به طور منظم روی برنچ ریموت پوش کنید.
۴. برای کمک یا فیدبک، یا وقتی که فکر میکنید کدتون اماده مرج کردن با برنچ main هست،
pull request باز کنید.
۵. بعد از اینکه کارتون قبول و review شد، میتونه با برنچ main مرج بشه.
۶. وقتی کارتون با برنچ main مرج شد باید بلافاصله دیپلوی بشه.
مزایای استفاده از GitHub flow:
چالش های استفاده از GitHub flow:
استراتژی GitLab flow با استراتژی GitHub flow شباهت داره، متمایز کننده اصلی وجود environment برنچ هایی مثل pre-production، production یا برنچ های release هست بسته به شرایط.
مثل دو استراتژی قبلی، GitLab flow هم یک برنچ main داره که شامل کدی هست که اماده دیپلوی شدنه، گرچه این برنچ کد اصلی برای انتشار رو شامل نمیشه.
در این استراتژی، برنچ feature شامل کدی میشه که فیچر اضافه کرده یا باگی رو فیکس کرده و بعد از تموم شدن، review شدن و قبول شدن با برنچ main مرج میشه.
استراتژی GitLab flow با دو نوع مختلف برای چرخه انتشار کار میکنه:
مزایای استفاده از GitLab flow:
چالش های استفاده از GitLab flow:
جواب سوال بهترین استراتژی برای گیت برنچینگ چیه بسته به شما و محیط تیمتون، پروژه و نیاز های خاص توسعه اتون داره.
گزینه ای وجود نداره که بتونه واسه هر شرایطی بهترین انتخاب باشه و صرف نظر از اینکه از کدوم استفاده میکنید، احتمال اینکه بتونید با کمی تغییر بهینه اش کنید وجود داره.