در مطلب «
آشنایی با ساختار یک Pull Request خوب» عنوان شد که قابلیتهای جدید و یا رفع مشکلات را در شاخهی اصلی کار نکنید. اما ... چگونه؟
ایجاد یک شاخهی جدید در Visual Studio و انتشار آن
به برگهی Team explorer مراجعه کرده و سپس گزینهی Branches آنرا انتخاب کنید:
در برگهی باز شده، انشعاب و شاخهی جاری با فونت ضخیم نمایش داده میشود. برای مثال در اینجا، انشعاب کاری همان master است:
برای ایجاد یک شاخهی جدید، بر روی لینک new branch کلیک کنید تا بتوان نامی را برای این منظور وارد کرد. بهتر است از نامهای با مفهومی مانند feature-X و یا fix-Y استفاده کنید (افزودن قابلیت X و یا رفع مشکل Y) و در آخر بر روی دکمهی Create branch کلیک کنید.
در اینجا میتوان مشخص کرد که انشعاب ایجاد شده باید بر اساس کدام انشعاب فعلی نیز تهیه شود (دراپ داون ذیل قسمتی که میتوان نام انشعاب را وارد کرد). برای مثال پروژههای مایکروسافت در GitHub، دارای سه شاخهی master، dev و release هستند. شاخهی dev (یا توسعه) جایی است که انشعابات pull requests را قبول خواهند کرد. بنابراین بر اساس ساختار و طراحی پروژهی جاری به این موضوع نیز باید دقت داشت.
پس از ایجاد شاخهی جدید، تصویر ذیل نمایان خواهد شد:
همانطور که ملاحظه میکنید، اینبار شاخهی جدید ایجاد شده به صورت bold و ضخیم نمایش داده شدهاست. این bold بودن به معنای شاخهی کاری جاری بودن است. همچنین این شاخه در قسمت unpublished branches قرار دارد. بنابراین کلیهی تغییرات واقع شدهی در آن، محلی بوده و هنوز با سرور هماهنگ نشدهاند.
برای انتشار و publish این شاخه، تنها کافی است تا بر روی آن کلیک راست کرده و گزینهی publish branch را انتخاب کنیم:
این انتشار سبب نمایش لیستی از تغییرات جدید در برگهی branches پروژه، در GitHub خواهد شد:
یک نکته: برای تغییر branch فعال جاری، فقط کافی است در برگهی branches در ویژوال استودیو، دوبار بر روی لینک نام آن شاخه کلیک کنید تا به صورت bold ظاهر شود.
ارسال تغییرات انجام شدهی در Branch به سرور
پس از کار بر روی شاخهی جدید ایجاد شده، اکنون نوبت به ارسال و هماهنگ سازی این تغییرات با سرور است. این مورد نیز همانند قبل بوده و ابتدا باید به برگهی Home و گزینهی changes آن مراجعه کرد:
و سپس تغییرات را به همراه توضیحی commit کرد:
اینکار سبب sync محلی میشود. سپس بر روی لینک sync کلیک نمائید و تغییرات را با سرور هماهنگ کنید.
یکی کردن تغییرات شاخهی جدید با شاخهی اصلی
هرچند این تغییرات به سرور ارسال شدهاند، اما چون در یک انشعاب کاری دیگر قرار دارند، با انشعاب اصلی یکی نخواهند شد. برای انجام عملیات merge، ابتدا به برگهی Home و سپس گزینهی branches مراجعه کنید. در ادامه بر روی لینک merge کلیک نمائید (تصاویر اول و دوم بحث).
در اینجا میخواهیم اطلاعات موجود در شاخهی افزودن توضیحات را با شاخهی اصلی یکی کنیم (انتخاب منبع و مقصد). سپس بر روی دکمهی merge کلیک نمائید.
اکنون برای ارسال این تغییرات به سرور، به برگهی Home و سپس گزینهی unsynced commits مراجعه کرده و بر روی دکمهی sync کلیک نمائید تا تغییرات یکی شده به سرور ارسال شوند.