رپو چیست؟
مخزن یا رپو، یک فضای ذخیرهسازی دیجیتال متمرکز است که توسعهدهندگان از آن برای ایجاد و مدیریت تغییرات در کد منبع یک برنامه استفاده میکنند. هنگام توسعه نرمافزار، توسعهدهندگان باید پوشهها، فایلهای متنی و انواع دیگر اسناد را ذخیره و به اشتراک بگذارند. رپو دارای ویژگیهایی است که به توسعهدهندگان امکان میدهد به راحتی تغییرات کد را ردیابی، فایلها را به طور همزمان ویرایش و به طور کارآمد در یک پروژه واحد از هر مکانی همکاری کنند.
چرا رپو مهم است؟
رپو به تیمهای توسعه نرمافزار اجازه میدهد تا چندین تغییر را در کد برنامه نرمافزار بدون به خطر انداختن کد منبع اصلی اعمال کنند. به جای اعمال مستقیم تغییرات در شاخه اصلی، آنها از ویژگیهای موجود در رپو برای ویرایش و بررسی تغییرات استفاده میکنند. این امر تداخل ادغام را زمانی که دو یا چند توسعهدهنده در حال ویرایش بخش مشابهی از کد هستند، کاهش میدهد.
توسعهدهندگان همچنین از رپوها برای معرفی ویژگیهای جدید یا رفع اشکالات بدون تأثیر بر نسخه تولید برنامه استفاده میکنند. آنها یک شاخه جدید یا یک کپی از کد منبع اصلی را به عنوان یک مخزن محلی برای کار ایجاد میکنند. با انجام این کار، توسعهدهندگان اطمینان حاصل میکنند که تغییرات جدید قبل از انتشار برای مشتریان به درستی آزمایش میشوند.
مزایای رپوها برای کسبوکارها
هنگامی که کسبوکارها از رپوها برای توسعه برنامه استفاده میکنند، چابکتر و پاسخگوتر به خواستههای در حال تحول مصرفکنندگان هستند. توسعهدهندگان میتوانند به سرعت روی ویژگیهای جدید کار کنند بدون اینکه ثبات برنامه زنده را تحت تأثیر قرار دهند. رپوها به توسعهدهندگان اجازه میدهند تغییرات را معرفی و مسائل احتمالی را به سرعت حل کنند. سازمانها همچنین میتوانند وظایف توسعه برنامه را بین توسعهدهندگانی که از راه دور کار میکنند، هماهنگ کنند.
رپو گیتهاب (GitHub) چیست؟
گیتهاب یک رپو مبتنی بر ابر است که به توسعهدهندگان اجازه میدهد کدهای پروژه را به صورت سازماندهی شده ذخیره و روی آنها کار کنند. گیتهاب بر اساس گیت (Git)، یک سیستم کنترل نسخه، ساخته شده است و شامل ویژگیهای اضافی است که همکاری بین توسعهدهندگان را بهبود میبخشد. رابط کاربری گرافیکی (UI) را ارائه میدهد که استفاده از عملکردهای مخزن را آسانتر میکند.
گیتهاب همچنین به یک جامعه آنلاین متن باز برای توسعهدهندگان تبدیل شده است. توسعهدهندگان میتوانند با پیوستن به بحث، ارائه کمک و مشارکت تخصص خود در پروژههای عمومی در گیتهاب با همسالان خود ارتباط برقرار کنند.
از آنجا که گیتهاب محبوبترین و پرکاربردترین رپو در بین جوامع توسعهدهنده در سراسر جهان است، این پست وبلاگ به طور خاص بر رپوهای گیتهاب تمرکز دارد.
رپو گیتهاب چگونه کار میکند؟
رپو گیتهاب به توسعهدهندگان اجازه میدهد تا از راه دور و به صورت توزیع شده با یک ابزار کنترل نسخه نصب شده محلی همکاری کنند. توسعهدهندگان از یک رابط خط فرمان برای اجرای توابع در گیت، یک نرمافزار کنترل نسخه، استفاده میکنند.
گیت به توسعهدهندگان اجازه میدهد تغییرات کد را ایجاد، مدیریت و با کد منبع اصلی ادغام کنند.
- ایجاد:
- ابتدا، توسعهدهندگان یک مخزن جدید در دایرکتوری پروژه که حاوی فایلهای کد است، ایجاد میکنند. از طرف دیگر، آنها میتوانند یک مخزن گیت را از یک مخزن موجود کلون کنند. مخزن گیت معمولاً حاوی یک فایل README است که اطلاعاتی را در مورد پروژه نمایش میدهد.
- پیکربندی:
- قبل از ایجاد تغییرات در مخزن محلی، توسعهدهندگان با افزودن اطلاعاتی مانند نام کاربری و ایمیل، رپو را پیکربندی میکنند. این امر به همکاران اجازه میدهد تا نویسنده یک رپو گیت خاص را شناسایی کنند. سپس، توسعهدهنده میتواند تغییراتی را در کد ایجاد کرده و آنها را با دستور
git commit
ذخیره کند.
- قبل از ایجاد تغییرات در مخزن محلی، توسعهدهندگان با افزودن اطلاعاتی مانند نام کاربری و ایمیل، رپو را پیکربندی میکنند. این امر به همکاران اجازه میدهد تا نویسنده یک رپو گیت خاص را شناسایی کنند. سپس، توسعهدهنده میتواند تغییراتی را در کد ایجاد کرده و آنها را با دستور
- تغییر:
- توسعهدهندگان تغییراتی را در کد در رپو خود ایجاد میکنند. در ابتدا، تغییرات فقط در سیستم محلی آنها ذخیره میشود. هنگامی که آماده شدند، میتوانند تغییرات را با رپو مرکزی ادغام کنند. اگر توسعهدهنده دیگری همان فایل را تغییر دهد، آنها میتوانند به صورت دستی هرگونه تداخل را بررسی و حل کنند.
ویژگیهای کلیدی رپو گیتهاب چیست؟
مخازن گیتهاب قابلیتهای نسخهبندی، اشتراکگذاری و همکاری متمرکز کد را با ویژگیهای زیر در اختیار توسعهدهندگان قرار میدهند.
- شاخهبندی (Branching):
- شاخهبندی فرآیند ایجاد یک کپی از مخزن در گیتهاب است. به طور پیشفرض، یک مخزن گیتهاب دارای یک شاخه اصلی است که حاوی کدهای منبع اصلی و فایلهایی است که توسعهدهندگان در ابتدا آپلود میکنند. اگر آنها نیاز به اصلاح بخش خاصی از کد داشته باشند، شاخهای را ایجاد میکنند که حاوی یک کپی کامل از فایلهای کد است و شاخه را بر این اساس برچسبگذاری میکنند.
- توسعهدهندگان میتوانند چندین شاخه را از مخزن اصلی ایجاد کنند. به عنوان مثال، توسعهدهندگان میتوانند یک شاخه ویژگی برای نوشتن کد برای عملکردهای جدید نرمافزار و شاخه دیگری برای عیبیابی مسائل گزارش شده ایجاد کنند.
- کامیت (Commit):
- کامیت ویژگیای است که به توسعهدهندگان اجازه میدهد تمام تغییراتی را که در فایلهای کد در شاخه ایجاد کردهاند، ذخیره کنند. گیتهاب به توسعهدهندگان اجازه میدهد هنگام کامیت تغییرات، تغییرات جدیدی را که در کد معرفی کردهاند، شرح دهند. هنگامی که توسعهدهندگان تغییرات را شرح میدهند، به اعضای تیم اجازه میدهد از تغییرات و دلایل ایجاد آنها آگاه شوند.
- درخواست کشیدن (Pull request):
- درخواست کشیدن یک پیام رسمی به سایر مشارکتکنندگانی که روی شاخه اصلی یا مالک شاخه کار میکنند ارسال میکند تا تغییرات کامیت شده را بررسی کنند. همکاران میتوانند قبل از ارسال برای ادغام، کامیت اصلی را بررسی، نظر دهند یا تغییرات اضافی ایجاد کنند. هنگامی که آنها یک درخواست کشیدن را بررسی میکنند، همکاران میتوانند تغییرات در کد اصلی را مشاهده کنند.
- ادغام (Merging):
- ادغام یک فرآیند گیتهاب است که تغییرات کامیت شده را در شاخه اصلی اعمال میکند. این کار زمانی انجام میشود که همکاران تغییرات کامیت شده را بررسی و تأیید کرده باشند. سپس آنها درخواست ادغام را در گیتهاب فراخوانی میکنند که قبل از ادغام تغییرات در کد اصلی، مجموعهای از بررسیها را آغاز میکند.
انواع مخازن گیت چیست؟
توسعهدهندگان میتوانند دو نوع مخزن گیت را با سطوح مجوز متفاوت ایجاد کنند.
- مخازن برهنه (Bare repositories):
- یک مخزن برهنه فقط حاوی پوشه فهرست است. توسعهدهندگان نمیتوانند فایلها را در یک مخزن برهنه اصلاح کنند.
- مخازن غیر برهنه (Non-bare repositories):
- یک مخزن غیر برهنه کپیهایی از فایلهای منبع را ذخیره میکند که توسعهدهندگان میتوانند روی آنها کار کنند و تغییرات را کامیت کنند.