مقدمه

داشتن یک «جریان کاری» (Workflow) مشخص و استاندارد برای یک تیم توسعه نرم‌افزار، مانند داشتن نقشه برای یک سفر است. جریان کاری مشخص می‌کند که تیم چگونه از ابزارهایی مانند گیت و گیت‌هاب برای توسعه، بازبینی و انتشار کد استفاده کند. مدل‌های مختلفی برای این کار وجود دارد (مانند GitFlow، GitLab Flow)، اما یکی از ساده‌ترین و محبوب‌ترین آن‌ها، جریان کاری گیت‌هاب (GitHub Flow) است.

این مدل توسط خود گیت‌هاب برای تیم‌هایش توسعه داده شده و بر پایه مفاهیمی چون برنچ‌ها و Pull Requestها استوار است. سادگی آن باعث شده تا برای اکثر پروژه‌ها، به خصوص آن‌هایی که از مدل استقرار مداوم (Continuous Deployment) پیروی می‌کنند، بسیار کارآمد باشد.

اصول کلیدی جریان کاری گیت‌هاب

این جریان کاری بر پایه چند قانون ساده و قدرتمند بنا شده است:

  • هر چیزی در برنچ main، قابل استقرار (Deployable) است: کد موجود در برنچ main باید همیشه پایدار، تست‌شده و آماده انتشار برای کاربران نهایی باشد. این مقدس‌ترین قانون است.
  • برای هر کار جدیدی، یک برنچ جدید بسازید: برای شروع هر کاری (یک قابلیت جدید یا رفع یک باگ)، باید یک برنچ جدید با نامی توصیفی از برنچ main جدا کنید (مثلاً new-feature یا fix-login-bug).
  • به صورت مداوم به برنچ خود Push کنید: تغییرات محلی خود را به طور منظم به برنچ متناظرش در سرور (origin) پوش کنید. این کار به عنوان یک پشتیبان عمل کرده و به سایر اعضای تیم اجازه می‌دهد از پیشرفت کار شما مطلع شوند.
  • هر زمان آماده بودید، یک Pull Request باز کنید: به محض اینکه نیاز به بازخورد یا کمک داشتید، یا زمانی که فکر می‌کنید کارتان تمام شده، یک Pull Request باز کنید. این کار آغازگر یک گفتگوی رسمی برای بازبینی کد شماست.
  • تنها پس از بازبینی و تایید، Merge کنید: پس از اینکه حداقل یک نفر دیگر از اعضای تیم کد شما را در Pull Request بازبینی و تایید (Approve) کرد، می‌توانید آن را با برنچ main ادغام کنید.
  • پس از ادغام، فوراً استقرار دهید: به محض اینکه تغییرات در برنچ main ادغام شد، باید به صورت خودکار یا دستی روی سرور اصلی مستقر شود تا کاربران از آن استفاده کنند.

مراحل عملی GitHub Flow

بیایید این اصول را در قالب یک چرخه عملی مرور کنیم.

مرحله ۱: ساختن برنچ

کار شما همیشه با ساختن یک برنچ جدید از آخرین نسخه main شروع می‌شود. نام برنچ باید کوتاه و توصیفی باشد تا هدف آن را به وضوح نشان دهد.

git checkout -b feature/user-profile

مرحله ۲: اضافه کردن کامیت

حالا می‌توانید کار کدنویسی را روی این برنچ جدید شروع کنید. کامیت‌های خود را به صورت اتمی و با پیام‌های واضح ثبت کنید. به طور منظم تغییرات خود را به سرور push کنید:

git push origin feature/user-profile

مرحله ۳: باز کردن Pull Request

وقتی احساس کردید کارتان نیاز به بازبینی دارد، به گیت‌هاب رفته و یک Pull Request از برنچ خود به برنچ main باز کنید. در توضیحات PR، هدف تغییرات خود را به وضوح شرح دهید و به Issue مربوطه ارجاع دهید.

مرحله ۴: بحث و بازبینی

در این مرحله، همکاران شما کد را بررسی می‌کنند. ممکن است در مورد بخش‌هایی از کد سوال بپرسند یا پیشنهاداتی برای بهبود آن ارائه دهند. اگر نیاز به تغییر باشد، شما کامیت‌های جدیدی را روی همان برنچ محلی خود اضافه کرده و دوباره push می‌کنید. Pull Request به صورت خودکار با تغییرات جدید به‌روزرسانی می‌شود.

مرحله ۵ و ۶: استقرار و ادغام (Deploy and Merge)

یکی از ویژگی‌های مهم GitHub Flow، ایده «استقرار از برنچ» قبل از ادغام نهایی است. برخی تیم‌ها ابتدا برنچ Pull Request را روی یک سرور آزمایشی (Staging) مستقر می‌کنند تا از عملکرد صحیح آن در یک محیط واقعی مطمئن شوند.

پس از اینکه تمام تست‌ها با موفقیت انجام شد و کد شما تایید نهایی را از تیم دریافت کرد، می‌توانید با خیال راحت روی دکمه سبز رنگ Merge کلیک کنید. تغییرات شما اکنون بخشی از برنچ main است و باید فوراً برای کاربران نهایی نیز منتشر شود. پس از ادغام، برنچ کاری شما دیگر نیازی نیست و می‌توانید آن را حذف کنید.