زمانی که با استفاده از گیت یک ریپازیتوری جدید میسازیم، به صورت خودکار یک برنچ (شاخه) تحت عنوان master ساخته میشود که نقش شاخهٔ اصلی ریپازیتوری مذکور را بازی خواهد کرد و هر کامیتی که انجام دهیم نیز روی این شاخه اِعمال خواهد شد و این در حالی است که معمولاً تیمهای نرمافزاری از این شاخه به عنوان نسخهای از نرمافزار استفاده میکنند که قرار است روی سرورهای اصلی دیپلوی گردد. با این تفاسیر، منطقی به نظر میرسد که این بِرَنچ به عنوان فضای آزمون و خطا در حین کدنویسی قملداد نشده بلکه فضاها یا بهتر بگوییم شاخههای فرعی دیگری ساخته و در آنها اقدام به توسعهٔ فیچرهای جدید نموده سپس آنها را با شاخهٔ مَستر ادغام نمود.
یکی از مزایای وجود شاخهها در سیستم کنترل نسخهٔ گیت آن است که میتوان به تعداد توسعهدهندگانی که در تیم حضور دارند برنچهای اختصاصی ساخته و در آنِ واحد تمامی اعضای تیم بتوانند اقدام به توسعهٔ نرمافزار کنند. برای درک بهتر این موضوع، فرض کنیم دولوپری داریم به نام بهزاد قرار است قابلیت درگاه پرداخت را به پروژه بیفزاید و دولوپر دیگری به نام سهند قرار است تا رابط کاربری را تکمیل کند؛ در چنین شرایطی، میتوان دو شاخهٔ فرعی از شاخهٔ مَستر تحت عناوین دلخواهی همچون behzad-branch-gateway و sahand-branch-ui ایجاد کرده و هر کدام از ایشان با سهولت هرچه تمامتر شروع به کدنویسی کرده و چنانچه در نهایت کدهای نوشتهشده مورد تأیید مدیر فنی بود، با شاخهٔ اصلی (مَستر) ادغام خواهند شد.
همانطور که در تصویر فوق ملاحظه میشود، خط عمومی که در سراسر نمودار ملاحظه میشود به عنوان بِرَنچ اصلی یا مَستر است که فرض میکنیم توسط توسعهدهندهٔ اصلی پروژه کامیتهایی تحت عناوین C1 و C2 انجام شده است. سپس یک شاخه از شاخهٔ اصلی جدا شده و نامی دلخواه همچون Branch1 برای آن در نظر گرفتهایم که فرضاً توسط یکی از اعضای تیم هَندل میگردد به طوری که وی سه کامیت داخل این شاخه انجام داده است. در آنِ واحد، برای یکی دیگر از اعضای تیم شاخهای به نام Branch2 ساخته شده و او نیز یک کامیت انجام داده است. در نهایت، دولوپر اصلی این پروژه کلیهٔ تغییرات اِعمالشده در دو بِرَنچ فوق را با بِرَنچ اصلی (مَستر) ادغام کرده و کلیهٔ این تغییرات را تحت عنوان C7 کامیت کرده است.
جمعبندی
مفهوم شاخهها در گیت را به نوعی میتوان به عنوان یکی از کلیدیترین خصیصههای این سیستم ورژن کنترل تلقی کرد چرا که اساساً این امکان در اختیار تیمهای مهندسی قرار میگیرد تا بتوانند به هر تعداد که بخواهند شاخهٔ جدید ایجاد کرده و افراد متعددی در آنِ واحد روی پروژه کار کنند. در عین حال، احتمال رخداد کانفلیکت در چنین شرایط بسیار زیاد خواهد بود و یک توسعهدهندهای که ادعا میکند به گیت مسلط است حتماً میباید با راهکارهای مختلف رفع این تداخلها آشنا باشد.
طراحی اپلیکیشن اندروید | طراحی وب سایت | شرکت ایده پردازان پاراکس |