معرفی Github و Gitlab | مقایسه دو سرویس محبوب Git در دنیا

دسته بندی: برنامه نویسی
سطح مقاله: ساده
زمان مطالعه: 8 دقیقه
۰۵ مهر ۱۳۹۸

گذر زمان رنگ و بوی جدیدی به برنامه نویسی بخشیده است و می توان گفت که امروز قوانین بازی تغییر کرده‌اند. بسیاری از آرزوی های قدیمی برنامه نویسان امروزه به واقعیت پیوسته اند و هر روز شاهد شگفتی های جدیدتر هستیم. یکی از این آرزوها این بود که برنامه نویسان در سراسر دنیا در یک جا جمع شوند و بتوانند گروهی روی یک سرویس کار کنند. همینطور کدهای دوستان خود را بخوانند و چیزهای جدید یاد بگیرند. بعد از به وجود آمدن گیت و سرویس هایی مثل گیت هاب یا گیت لب این قدرت به دست برنامه نویسان افتاده و می توانند نرم افزارهای متن باز دنیا را مطالعه کنند. امروز درباره این صحبت می کنیم که گیت لب و گیت هاب چه هستند و چه تفاوت هایی با هم دارند.

فهرست محتوای این مقاله

Git چیست؟

گیت چیست؟

هر دو سرویس گیت هاب و گیت لب که امروز درباره آنها صحبت می کنیم، مخزن هایی در بستر وب مبتنی بر Git هستند. حالا این سوال مطرح می شود که گیت چیست؟ Git یک سیستم کنترل ورژن یا version control system می باشد که توسط لینوس توروالدز، خالق هسته لینوکس طراحی شده است. هدف اصلی این سرویس فراهم کردن محیطی برای برنامه نویسان بود تا بتوانند به صورت گروهی روی یک پروژه مشترک کار کنند. به کمک Git می توانید یک پروژه نرم افزاری ایجاد کنید که به راحتی توسط خودتان و دیگران قابل تغییر می باشد. اطلاعات پروژه شما می تواند توسط دیگران هم قابل ردیابی یا تغییر باشد. Git این اطلاعات را تحت ساختاری به نام Repository یا مخزن ذخیره می کند. پس Repository یک محیط در Git است که برنامه نویسان در آنجا کدهای خود را به ذخیره کرده، به اشتراک می گذارند، تست می کنند و به طور کلی با سایر برنامه نویسان همکاری می کنند. برای آشنایی بیشتر با Git پیشنهاد می کنیم حتما مطلب زیر را مطالعه کنید:

Github چیست؟

گیت هاب چیست

گیت هاب یک سرویس میزبانی وب یا یک شبکه اجتماعی برای برنامه نویسان است که از سیستم Git برای کنترل نسخه استفاده می کند. گیت هاب از سال 2008 شروع به کار کرده و امروز بیشتر از 30 میلیون برنامه نویس در دنیا از آن استفاده می کنند. در این سرویس می توانید یک Repository جدید ایجاد کرده و کدهای خود را با سایر برنامه نویسان در دنیا به اشتراک بگذارید. گیت هاب به دو بخش عمومی و خصوص تقسیم شده است، قسمت عمومی گیت هاب به طور رایگان قابل استفاده بوده و فقط برای ایجاد پروژه های خصوصی باید هزینه پرداخت کنید. در 25 جولای 2019 گیت هاب طی یک ایمیل به کاربران اعلام کرد که دسترسی آنها محدود شده است.

GitLab چیست؟

Gitlab چیست

گیت لب هم مثل گیت هاب یک سیستم کنترل نسخه می باشد که اجازه می دهد برنامه نویسان کدهای خود را با هم به اشتراک بگذارند. این سرویس با زبان برنامه نویسی Ruby و Go طراحی شده است. وقتی برندهایی مثل IBM، سونی، علی بابا و ناسا از گیت لب استفاده می کنند در برنامه نویسان یک اطمینان خاطر ایجاد می شود که این سایت قابل اعتماد است. زمانی که گیت لب سرورهای خود را تغییر داد و از مایکروسافت به گوگل کوچ کرد، مشکلاتی برای کاربرانی ایرانی این سرویس به وجود آمد.

دو سرویس Gitlab و Github چه تفاوت هایی با هم دارند؟

تفاوت سرویس گیت لب و گیت هاب

هر چند هر دو پلتفرم یک کار را انجام می دهند و شباهت های بسیار زیادی با هم دارند، اما مسلما در بعضی از موارد با هم متفاوت هستند. ما در این پست این موارد را تفکیک کرده و هر کدام را جداگانه بررسی می کنیم. بعد از خواندن این تفاوت ها درک بهتری نسبت به هر دو سیستم پیدا خواهید کرد.

سطح دسترسی

در گیت لب می توانید سطح دسترسی افراد را با توجه به نقشی که در سایت دارند، تنظیم کنید یا تغییر دهید. اما در گیت هاب مشخص می کنید که یک نفر بتواند Repository شما را بخواند یا یا در آن تغییر ایجاد کند ( Read/Write ). در گیت لب تعیین سطح دسترسی کمک خوبی است. مثلا می توانید بدون دسترسی فرد به سورس کد، دسترسی Issue Tracker به او بدهید. این قابلیت برای شرکت های بزرگی که نقش های مختلفی داخل سازمان دارند بسیار مفید است.

CI / CD متفاوت

یکی از تفاوت های بزرگ گیت هاب و گیت لب در همین مورد است. CI مخفف Continuous integration می باشد که در بسیاری از مواقع زمان انجام پروژه را بسیار کاهش می دهد. گیت لب سرویس CI رایگان مختص خودش را دارد و شما را از یک CI اکسترنال بی نیاز می کند. اگر هم در حال حاضر از CI خارجی استفاده می کنید به راحتی آن را با ابزارهایی مثل Jenkins یا Codeship ادغام کنید.

گزارش مشکلات

در گیت هاب و گیت لب می توانید مشکلاتی که یک پروژه دارد را به تیم آن گزارش کنید. گفتیم که یکی از اهداف سیستم های کنترل نسخه مشارکت افراد در پروژه های مختلف است. وقتی برنامه نویسان ایرادهای یکدیگر را پیدا کرده و آنها را به هم اطلاع بدهند، نتیجه مشترکی حاصل می شود و این نتیجه چیزی نیست جزء پیشرفت نرم افزار. هر دو سرویس گیت لب و گیت هاب از یک نسخه ساده و در عین حال قدرتمند برای ارسال مشکلات استفاده می کنند. می توانید یک محیط گرافیکی جذاب مثل Usersnap را به این سرویس ها متصل کنید تا کار با آنها جذاب تر هم بشود. هر دو پلتفرم در این مورد بسیار عالی عمل کردند و نمی توان ایرادی به کار هیچکدام از آنها گرفت.

درون ریزی و برون ریزی

فرض کنید در حال حاضر از گیت هاب استفاده می کنید، اما بنا به دلایلی می خواهید این سرویس را کنار گذاشته و سراغ گیت لب بروید. آیا این کار شدنی است؟ به عبارتی می خواهیم ببینیم می توانیم در یکی از این دو سرویس از پروژه خود Export گرفته و در سرویس دیگر به راحتی آن را Import کنیم؟ گیت لب در این مورد بسیار خوب کار کرده است. با یک مستندسازی قوی به شما نشان می دهد که چطور از سایر ورژن کنترل ها مثل Github، Bitbucket یا غیره به گیت لب مهاجرت کنید. در مقابل گیت هاب هم یک Importer دارد و به شما اجازه می دهد کدهای خود را از سیستم هایی مثل Subversion، Mercurial یا TFS به این سرویس منتقل کنید. وقتی صحبت از خروجی گرفتن می شود، گیت لب واقعا گل کاشته است. می توانید از پروژه خود به شکل های مختلف خروجی بگیرید. اما گیت هاب کمی محدودتر بوده و در خروجی گرفتن از Repositoryها تنوع و امکانات گیت لب را ندارد.

تحریم بودن و امکان استفاده در ایران

همانطور که گفتیم که گیت لب زمانی که سرورهای خود را تغییر داد، طبق قوانین آمریکا از سرویس دادن به کشور ایران منع شد. این نکته آب سردی بر تن کاربران ایرانی ریخت که بعد از خرید گیت هاب توسط مایکروسافت به دنبال راه فراری بودند و بهترین گزینه روی میز گیت لب بود. اما ماجرا کمی پیچیده تر شد و در سال 2019 گیت هاب طی یک ایمیل به کاربران ایرانی اعلام کرد که مطابق با تحریم های آمریکا، دسترسی ایرانی ها به این سرویس محدود شده است. پس زمانی که ما این مقاله را منتشر می کنیم برنامه نویسان ایرانی حق استفاده از گیت لب یا گیت هاب را ندارند (البته مشخص نیست در آینده چه اتفاقاتی بیفتد) راه حل های مختلفی برای استفاده از گیت هاب و گیت لب در ایران وجود دارد و می شود تا حدودی این تحریم ها را دور زد. حتی می توانید قید این دو سرویس مشهور را زده و سراغ جایگزین های دیگری مثل BitBucket یا GitKraken بروید.

نتیجه گیری

در این مطلب دو سرویس گیت هاب و گیت لب را معرفی کرده و اشاره ای به برخی از تفاوت های مهم آنها داشتیم. هر دو سرویس امکانات خوبی دارند و نمی‌توان یکی را برتر از دیگری دانست. شما باید با توجه به شرایط پروژه خود یکی از این دو سرویس کنترل نسخه را انتخاب کنید. در آخر هم از شما می خواهم نظر خود را درباره گیت هاب و گیت لب با ما و کاربران سون لرن به اشتراک بگذارید.

نویسنده
زندگی کردن در لحظه انقدر سخت است که بیشتر مردم ترجیح می‌دهند در حسرت گذشته و رویای آینده باقی بمانند. به نظر من رسیدن به خوشحالی فرمول پیچیده ای ندارد و فقط باید به تک بیت زیر پایبند بود: سعدیا دی رفت و فردا همچنان موجود نیست در میان این و آن ، فرصت شمار امروز را

نظرات کاربران

Ziba Darabi

واقعا برام سوال بود برای منی که خیلی در فضای برنامه نویسی نبودم سوال خوبی بود که به خوبی هم پاسخ داده شد بهش ممنون

محمد انوری

سلام …
خیلی خوشحالم که پاسخ خوبی داده شد به سوالتون…
موفق باشید همیشه …

منصور

سلام
GitKaren یه نرم افزار گرافیکی برای استفاده از سرویس های گیت هست نه یه یه گیت سرور مثل گیت هاب و گیت لب در کل مقاله آشفته ای بود نیاز به ویراستاری داره

ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :

 
گزارش مشکل