گیتهاب، پس از اینکه توسط مایکروسافت خریداری شد، کاربران زیادی را از دست داد؛ تعداد زیادی از توسعهدهندگان عضو گیتهاب در واکنش به این اقدام مایکروسافت با این ذهنیت که این شرکت با اعمال سلیقهی خود سرویس مذکور را به نابودی خواهد کشاند، راهی سرویس جایگزینی به نام گیتلب شدند. گیتلب که اخیرا سرویس ابری خود را از مایکروسافت آژور به گوگل کلود منتقل کرده است، این روزها توجه کاربران زیادی را به خود جلب کرده است. در این مطلب به بررسی و مقایسهی اجمالی این دو مخرن گیت مبتنی بر وب خواهیم پرداخت.
گیت نرمافزارِ کنترلِ نسخهای است که به منظور ثبت سوابق تغییرات اعمالشده در فایلها در گذر زمان طراحی شده است. به بیان دیگر، سیستم کنترل نسخهای با این مفهوم است که تمام دایرکتوریهای گیت در یک رایانه، مخزنی کامل با تاریخچهی کامل پروژه است و تنها وضعیت فعلی فایلها را نمایش نمیدهد.
یک میزبان مخزن گیت مبتنی بر وب برای کنترل نسخه است که از محبوبیت بالایی بین توسعهدهندگان برخوردار است. این سرویس نوعی سیستم کنترل نسخهی توزیع یافته است. یعنی در این سیستم تغییرات هر نسخه در رایانهی تمام توسعهدهندگان قابل دسترسی هستند. گیتهاب در کنار مدیریت کد منبع گیت، ویژگیهای کارآمد دیگری نیز دارد. میتوانید در وبسایت گیتهاب یک کپی از مخزن خود را آپلود کنید. این سرویس به توسعهدهندگان امکان همکاری و کار روی پروژه از نقاط مختلف دنیا را میدهد. این مهم از طریق در نظر گرفتن مکان مرکزی برای مخازن محقق شده است. بر خلاف نرمافزار گیت که صرفا محیطی شبیه به داس برای اجرای دستورات دارد، گیتهاب ویژگیهایی مانند رابط کاربری گرافیکی مبتنی بر وب و قابلیت ایجاد درخواست اعمال تغییرات را را ارائه میدهد و امکان مرور تغییرات و بحث و تبادل نظر با همتیمیها را برای کاربران فراهم میکند.
گیتهاب برای مخازن عمومی حسابهای کاربری رایگان و برای مخازن خصوصی (غیرقابل مشاهده برای عموم) حسابها کاربری پولی ارائه میکند. مخازن عمومی گیتهاب به صورت رایگان از پروژههای متنباز میزبانی میکند. با اینکه تمامی بازدیدکنندگان اعم از ثبتنام شده و ثبتنام نشده امکان مشاهدهی مخازن عمومی را دارند، تنها اعضای این سایت میتوانند به گفتگو، ساخت و مدیریت مخازن و همکاری در پروژهها بپردازند و تغییرات پیشین پروژهها را بررسی کنند. گیتهاب اینترپرایز (Github Enterprise) خدمت دیگری از این سرویس است که مخصوص شرکتهای تجاری توسعهی نرمافزار و برای انجام پروژههای کلان طراحی شده است.
سایت گیتهاب در آوریل سال ۲۰۰۸ راهاندازی شد. این سایت به زبان روبی و بر بستر Rails و Erlang توسط شرکت گیتهاب نوشته شد. شرکتی که بنیانگذاران و برنامهنویسان آن تیم پرستون ورنر، کریس وانستراس و پیجی هایت بودند. بر اساس گزارشهای اخیر، سرویس گیتهاب هماکنون بیش از ۲۸ میلیون توسعهدهنده دارد که این تعداد بیش از ۸۵ میلیون مخزن را در این سایت ایجاد کردهاند. این آمار چشمگیر، گیتهاب را به یکی از بزرگترین مخازن سورس کد تبدیل کرده است. از جمله شرکتهای مطرحی که از گیتهاب استفاده میکنند و سیاست متنباز را رعایت میکنند میتوان به گوگل، ادوبی، توییتر، پیپال، لینکدین، یاهو و فیسبوک اشاره کرد.
گیتهاب بسیار فراتر از یک مکان برای ذخیرهی مخازن گیت است. از جمله قابلیتهای دیگر گیتهاب میتوان به موارد زیر اشاره کرد:
همانند گیتهاب، گیتلب نیز یک سرویس مدیریت مخزن گیت مبتنی بر وب است که امکان همکاری اعضای تیم در یک پروژهی کدنویسی جهت کدنگاری، تست، کپیبرداری و ویرایش را فراهم میکند. همچنین، کدهای نگارش شده قابلیت تلفیق شدن با پروژههای موجود را دارند. در خصوص سایر ویژگیهای گیتلب میتوان به مدیریت بینقص مخزن گیت، دستورالعملها، گزارش فعالیتها، بررسی کدها و پیگیری مشکلات اشاره کرد. شرکت گیتلب علاوه بر اینکه مانند گیتهاب از حسابهای کاربران خود میزبانی میکند، امکان استفاده از سرورهای متفرقه را نیز برای کاربران فراهم میکند. چشمانداز گیتلب در زمان تأسیس این بود که تمامی افراد بتوانند در ساخت محتوای دیجیتال همکاری مشارکت کنند.
گیتلب چهار نوع یا نسخه از مخازن را در اختیار کاربران قرار میدهد.
داشتن قابلیتهایی نظیر اجازه دسترسیها، دسترسی و محافظت از شاخهی کدها، گیتلب را در بین مخازن گیت موجود به گزینهای محبوب تبدیل کرده است. هرچند که نمیتوان تصاحب گیتهاب توسط مایکروسافت را در این اتفاق بیتأثیر دانست.
گیتلب تمام امکانات گیتهاب را شامل میشود و علاوه بر آنها کنترل بیشتر تیمها روی مخازن را ممکن میسازد. برخی ویژگیهای اضافهی گیتلب در مقایسه با گیتهاب عبارتند از:
سطوح دسترسی
هر دو سرویس به کاربران امکان اختصاص مجوزهای مختلف را به منظور تعیین نقش افراد در پروژه میدهند.
امکام ضمیمه کردن در مسائل (Issues)
میتوانید هر فایلی که میخواهید را به طرح مسئله یا کامنت خود در گیتلب اضافه کنید؛ اما این امکان در گیتهاب وجود ندارد.
محافظت از کار در حال انجام
عنوان «کار در حال انجام» یا Work in Progress از تلفیق کد کامل شده با کاملنشده جلوگیری میکند.
دسترسی به منابع داخلی
این ویژگی منحصر به گیتلب به توسعهدهندگان امکان مرور و اشتراکگذاری سایر پروژههای فعال در شرکت را میدهد تا افراد بتوانند از مهارتهای یکدیگر استفاده کنند.
پیگیری مسائل (Issue Tracking)
ابزار پیگیری مسائل گیتلب از همتای آن در گیتهاب قدرتمندتر عمل میکند و رابط کاربری گیتلب در مقایسه با گیتهاب سادهتر و کار با آن آسانتر است.