گذر زمان رنگ و بوی جدیدی به برنامه نویسی بخشیده است و میتوان گفت که امروز قوانین بازی تغییر کردهاند. بسیاری از آرزویهای قدیمی برنامه نویسان امروزه به واقعیت پیوسته اند و هر روز شاهد شگفتیهای جدیدتر هستیم. یکی از این آرزوها این بود که برنامه نویسان در سراسر دنیا در یک جا جمع شوند و بتوانند گروهی روی یک سرویس کار کنند. همینطور کدهای دوستان خود را بخوانند و چیزهای جدید یاد بگیرند. بعد از به وجود آمدن گیت و سرویس هایی مثل گیت هاب یا گیت لب این قدرت به دست برنامه نویسان افتاده و میتوانند نرم افزارهای متن باز دنیا را مطالعه کنند. امروز درباره این صحبت میکنیم که گیت لب و گیت هاب چه هستند و چه تفاوت هایی با هم دارند.
Git چیست؟
هر دو سرویس گیت هاب و گیت لب که امروز درباره آنها صحبت میکنیم، مخزن هایی در بستر وب مبتنی بر Git هستند. حالا این سوال مطرح میشود که گیت چیست؟ Git یک سیستم کنترل ورژن یا version control system میباشد که توسط لینوس توروالدز، خالق هسته لینوکس طراحی شده است. هدف اصلی این سرویس فراهم کردن محیطی برای برنامه نویسان بود تا بتوانند به صورت گروهی روی یک پروژه مشترک کار کنند. به کمک Git میتوانید یک پروژه نرم افزاری ایجاد کنید که به راحتی توسط خودتان و دیگران قابل تغییر میباشد. اطلاعات پروژه شما میتواند توسط دیگران هم قابل ردیابی یا تغییر باشد. Git این اطلاعات را تحت ساختاری به نام Repository یا مخزن ذخیره میکند. پس Repository یک محیط در Git است که برنامه نویسان در آنجا کدهای خود را به ذخیره کرده، به اشتراک میگذارند، تست میکنند و به طور کلی با سایر برنامه نویسان همکاری میکنند. برای آشنایی بیشتر با Git پیشنهاد میکنیم حتما مطلب زیر را مطالعه کنید:
Github چیست؟
گیت هاب یک سرویس میزبانی وب یا یک شبکه اجتماعی برای برنامه نویسان است که از سیستم Git برای کنترل نسخه استفاده میکند. گیت هاب از سال 2008 شروع به کار کرده و امروز بیشتر از 30 میلیون برنامه نویس در دنیا از آن استفاده میکنند. در این سرویس میتوانید یک Repository جدید ایجاد کرده و کدهای خود را با سایر برنامه نویسان در دنیا به اشتراک بگذارید. گیت هاب به دو بخش عمومی و خصوص تقسیم شده است، قسمت عمومی گیت هاب به طور رایگان قابل استفاده بوده و فقط برای ایجاد پروژههای خصوصی باید هزینه پرداخت کنید. در 25 جولای 2019 گیت هاب طی یک ایمیل به کاربران اعلام کرد که دسترسی آنها محدود شده است.
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 بروید.
نتیجه گیری
در این مطلب دو سرویس گیت هاب و گیت لب را معرفی کرده و اشاره ای به برخی از تفاوتهای مهم آنها داشتیم. هر دو سرویس امکانات خوبی دارند و نمیتوان یکی را برتر از دیگری دانست. شما باید با توجه به شرایط پروژه خود یکی از این دو سرویس کنترل نسخه را انتخاب کنید. در آخر هم از شما میخواهم نظر خود را درباره گیت هاب و گیت لب با ما و کاربران سون لرن به اشتراک بگذارید.
۵ دیدگاه
محمد حسین۳۰ دی ۱۳۹۹، ۱۹:۲۴
الان ک من دارم این نظر رو مینویسم
گیت هاب اعلام کرده ک سایتش برای ایرانیها هم اوکی شده و اون تحریمها برداشته شده :)
حمید رضا۲۰ بهمن ۱۳۹۸، ۱۷:۴۹
سلام . بسیار عالی . ولی من سرچ کردم میخاستم بدونم اصلا چرا لینوس تروالد معنی git رو برای این سیستمش درنظر گرفته به نتیجه ای نرسیدم. میشه شما بگید اصلا چرا اینطوری نام گذاریش کرده؟ممنون
Ziba Darabi۱۱ آبان ۱۳۹۸، ۰۸:۵۱
واقعا برام سوال بود برای منی که خیلی در فضای برنامه نویسی نبودم سوال خوبی بود که به خوبی هم پاسخ داده شد بهش ممنون
محمد انوری۱۲ آبان ۱۳۹۸، ۱۶:۲۳
سلام ...
خیلی خوشحالم که پاسخ خوبی داده شد به سوالتون...
موفق باشید همیشه ...
منصور۰۶ مهر ۱۳۹۸، ۱۸:۴۸
سلام
GitKaren یه نرم افزار گرافیکی برای استفاده از سرویسهای گیت هست نه یه یه گیت سرور مثل گیت هاب و گیت لب در کل مقاله آشفته ای بود نیاز به ویراستاری داره
راهنمای مقاله
Git چیست؟
Github چیست؟
GitLab چیست؟
دو سرویس Gitlab و Github چه تفاوت هایی با هم دارند؟
نتیجه گیری
راهنما و فهرست مقاله
Git چیست؟
Github چیست؟
GitLab چیست؟
دو سرویس Gitlab و Github چه تفاوت هایی با هم دارند؟