در این مقاله به طور خلاصه نحوه گردش کار در gitflow رو توضیح میدیم:
فرض بر این است که شما با git آشنایی کافی دارید. لهفبمخث یک ابزار توسعه داده شده روی Git است و دستور git flow init یک افزونه از دستور اصلی git init است که تنها تغییری که در مخزن شما ایجاد می کند ساختن شاخه ها برای شما است. در واقع gitflow یک مدل استفاده از git هست.در این مدل کارها در ۴ برنچ متفاوت انجام می شه که این برنچ ها عبارتند از:
که درباره روش گردش کار بین این شاخه ها توضیح میدیم.
روند کلی گردش کار Gitflow به صورت زیر است:
1. شاخه ی develop از شاخه ی master گرفته می شود.شاخه master پایدارترین ورژن از کدمون هست و همیشه با نمومه ای از پروژه که در production در حال استفاده هست به روز شده.
2. شاخه های feature از شاخه ی develop گرفته می شوند.هر feature جدید می بایست در شاخه ی خود قرار داشته باشد.اما به جای ایجاد شاخه ی جدید از master، شاخه های feature از شاخه ی develop به عنوان پدر استفاده می کنند.هنگامی که یک feature کامل می شود، در شاخه ی develop بابقیه merge می شود.شاخه های feature به طور معمول، از به روزترین نسخه ی شاخه ی develop گرفته می شوند.
3.. شاخه ی انتشار(release) از شاخه ی develop گرفته می شود. هنگامی که شاخه ی feature ,developهای کافی را برای انتشار نسخه جدید محصول کسب کرد (یا تاریخ انتشار از قبل مشخص شده، نزدیک است)، شما یک شاخه ی انتشار از شاخه ی develop می گیرید.
4. وقتی که کار روی یک شاخه ی feature تمام می شود، این شاخه در شاخه ی merge ،develop می شود. در واقع ایجاد شاخه انتشار چرخه ی انتشار جدیدی را آغاز می کند، پس هر feature جدیدی باید بعد از انتشار اضافه شود. در این مرحله فقط رفع نقص، تهیه ی مستند پروژه و باقی کار های مربوط به انتشار محصول در این شاخه انجام می شوند. وقتی که محصول آماده ی ارائه است، شاخه ی انتشار در شاخه ی master، ادغام می شود و برچسب شماره ی نسخه روی آن می خورد. علاوه بر این باید شاخه ی انتشار در شاخه ی develop نیز merge شود.
5. وقتی که کار روی شاخه ی انتشار تمام می شود، این شاخه در هر دو شاخه ی develop وmaster با هم merge می شود.
6. اگر نقص در شاخه ی master شناسایی شود، یک شاخه ی hotfix از شاخه ی master گرفته می شود. شاخه های hotfix یا نگهداری، برای رفع سریع نقص های نسخه های منتشر شده استفاده می شوند. شاخه های hotfix بسیار به شاخه های انتشار شبیه اند با این تفاوت که شاخه های hotfix به جای develop از شاخه ی master گرفته می شوند. این شاخه ها تنها شاخه ای هستند که باید به طور مستقیم از شاخه ی master گرفته شوند. به محض اینکه رفع نقص انجام شد این شاخه باید در هر دو شاخه ی master وdevelop، با هم merge شود و شاخه ی master باید یک برچسب با شماره نسخه ی جدید دریافت کند.
7. وقتی که نقص در شاخه ی hotfix رفع شد، این شاخه در هر دو شاخه ی develop و master ادغام می شود.