تیک۴

GitHub چیست؟ چرا باید در پروژه ها از Git و GitLab استفاده کنیم؟

با جستجو در سایت های کاریابی، حتما متوجه شده اید که شرکت ها علاوه بر مهارت های تخصصی، مهارت های مشترکی را نیز از برنامه نویس ها طلب می کنند. مهارت های مشترک میان تمام برنامه نویسان این حوزه مانند Git، GitHub و GitLab و یا حتی مهارت های agile و scrum. در واقع این مهارت ها مربوط به ساخار کار آن شرکت می باشد و هر برنامه نویسی برای استخدام در آن شرکت موظف به یادگیری این مهارت ها می باشد. در این مقاله از تیک4 قصد داریم به معرفی گیت، گیت هاب و گیت لب بپردازیم و کار با آن ها را آموزش دهیم.

سیستم های کنترل نسخه GitLab و GitHub و Bitbucket | تیک4

گیت و گیت هاب چیست؟

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

حال تصور کند سیستمی وجود داشته باشد که همه بتوانند کد های شما را ببینند و آن ها را ویرایش کنند. شاید مشکلی که برای شما پیش آمده است را برنامه نویس دیگری آن را حل کرده باشد و بتواند کد های شما را اصلاح کند. یا سیستمی وجود داشته باشد که در کار گروهی همه بتوانند به کد های یکدیگر دسترسی داشته باشند تا ارتباط میان کدها قابل فهم تر باشد. همه این امکانات جذاب را سیستم های کنترل نسخه مانند GitHub، در اختیار شما قرار می دهند.

معرفی GitHub

برای گیت هاب تعاریف گوناگونی در سرتاسر وب وجود دارد. اما شاید بهترین تعریف این است که:

گیت هاب یک “شبکه‌ اجتماعی در فضای ابری برای برنامه‌نویسان و یک پلتفرم همکاری برای توسعه‌دهندگان است که بزرگ‌ترین فضای ذخیره‌سازی برای کارهای اشتراکی و توزیع‌یافته دنیا” به شمار می‌رود.

شاید کمی با تعریف بالا گیج شده باشید. در واقع GitHub یک هاست بزرگ است. وظیفه این هاست میزبانی از پروژه هایی است که از سیستم کنترل پروژه Git استفاده می کنند. همچنین  شبکه اجتماعی است برای توسعه دهندگان و برنامه نویسان، تا بتوانند کد های خود را به اشتراک بگذارند.

کلمه GitHub از دو بخش گیت (Git) و هاب (Hub) تشکیل شده است. برای یادگیری گیت هاب، باید هر دو جزء این کلمه را درک کنیم. در ادامه با چند مفهوم کلی در این زمینه آشنا می شویم تا درک این سیستم مفید و کاربردی برای شما راحت تر باشد.

Git چیست؟

Linus Trovalds مبتکر این سیستم، گیت (Git) را سیستم کنترل ورژن منبع باز معرفی کرده است. اما این سوال پیش می آید که کنترل ورژن چیست؟

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

یکی دیگر از امکانات این سیستم این است که مشخصات هر شخصی که این تغییرات را روی پروژه انجام داده است ثبت می شود. با ثبت مشخصات شما دیگر نمی توانید مسئولیت کارهای خود را گردن کسی دیگر بیندازید.😉 پس حواستان باشد اگر روی گیت کار میکنید. هر کدی را تغییر ندهید.

کنترل ورژن کار را ساده می‌کند!

بحث برای کنترل پروژه خیلی گسترده است. بیاین با یک مثال کمی بیشتر در این مورد صحبت کنیم. فرض کنید روی یک پروژه خیلی بزرگ کار می کنید که رقبای زیادی دارد. اگر قرار باشد تمامی برنامه نویسانی که روی این پروژه کار میکنند به همه فایل ها دسترسی داشته باشند، دیگر امنیت پروژه قابل تضمین نیست. Git این امکان را به شما می دهد تا با ایجاد یک شاخه موازی از پروژه branch، قسمتی از پروژه را در اختیار برنامه نویس مربوطه قرار دهید تا آن را ویرایش کند و سپس روی پروژه نهایی قرار دهد (ادغام کند).

حال پس از اجرای پروژه اگر به باگی برخورد کنیم، با پیدا کردن مشکل میتوانیم به نویسنده آن قسمت که از قبل در Git مشخص شده است اعلام کنیم تا کدهای خود را اصلاح کند. یا حتی اگر این باگ را پیدا نکنیم میتوانیم برای اجرای پروژه به راحتی به نسخه قبل که آن هم در گیت ثبت شده است، برگردیم و پروژه را به حالت stable برگردانیم.

هاب چیست؟

کلمه ی Hub را قطعا قبلا شنیده اید. این کلمه به معنی مرکز یک فعالیت، منطقه ویا یک شبکه است. مثال ساده از این کلمه USB Hub است که به معنی هاب مرکزی برای ارتباطات USB می باشد. در حوزه گیت هم می توان این کلمه را مرکزی برای ارتباطات و مکانی دانست که تمام فعالیت‌های مربوط به گیت حول محور آن رخ خواهد داد.

مفاهیم کاربردی برای استفاده از گیت هاب

برای استفاده از گیت هاب باید مفاهیمی که را در این پلتفرم استفاده می شوند را بدانید و آن ها را درک کنید. مفاهیمی مانند: ریپازیتوری (Repository)، Fork، Commit و … . در ادامه به معرفی هر یک از آن ها می پردازیم.

Repository چیست؟

کلمه Repository در انگلیسی به معنی منبع یا انبار است و به اختصار آن را Repo می نامند. همانطور که از معادل فارسی این کلمه مشخص است، در حوزه گیت هاب Repo به مکانی تلقی می شود که تمام فایل های پروژه در آن ذخیره می شود. در واقع اینطور می شود گفت که هر Repo در GitHub فایل های یک پروژه را در خود ذخیره می کند و یک URL و آدرس منحصر به فرد دارد.

Fork چیست؟

Fork در معادل فارسی به معنای چنگال، شاخه و یا شعبه است. در GitHub زمانی که می خواهید پروژه ای را بر اساس پروژه ای که از قبل موجود است، کد نویسی کنید به اصطلاح آن را Fork می کنید. در واقع تمامی فایل های آن پروژه را دریافت می کنید. آن ها را پس از ویرایش در Repo خود انتشار می دهید. همچنین با این روش اگر پروژه اولیه آپدیت داشته باشد، میتوانید این آپدیت را نیز به پروژه خود اضافه کنید.

Branch چیست؟

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

پس از این که کار های مربوط به آن شاخه (Branch) تمام شد می توانیم با استفاده از Pull Request کد های جدید را در شاخه اصلی ادغام (Merge) کرد.

Pull Request چیست؟

مفهوم Pull Request در گیت هاب این است که شما پس از ایجاد تغییرات روی یک Branch برای اینکه تغییرات شما روی شاخه اصلی ادغام شود یک درخواست برای صاحب آن Repo ارسال می کنید. تغییرات شما پس از تایید برنامه نویسان شاخه اصلی در پروژه ادغام و یا merge می شود. در واقع این یک درخواست برای تغییر در شاخه اصلی است که توسط هر کسی می تواند ارسال شود.

Commit

هر تغییری که در پروژه ایجاد می شود، یک Commit است. در این Commit ها مشخصاتی از قبیل کد های تغییر داده شده، زمان تغییر و شخص تغییر دهنده ثبت می شود. در یک پروژه بزرگ این Commit ها هستند که جزئیات پروژه را مشخص می کنند و به کنترل ورژن معنی می دهند.

چگونه از گیت هاب استفاده کنیم؟

کار با گیت و گیت هاب اصلا پیچیده نیست و فقط نیاز به کمی دقت دارد. ما در این مقاله به صورت مقدماتی، کار با سایت GitHub را آموزش می دهیم. اولین قدم در این آموزش ساخت اکانت در سایت github.com است.

1- ساخت اکانت گیت هاب

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

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

2- نصب Git

گیت هاب روی پلتفرم Git اجرا می‌شود. همانطور که در بالا اشاره شد، Git (گیت) توسط اسطوره برنامه نویسی “لینوس توروالد” ایجاد شده است. این پلتفرم کنترل نسخه ابزار جذابی برای همکاری برنامه نویسان مختلف روی یک پروژه می باشد. Git به برنامه نویسانی که به صورت مشترک روی یک پروژه کار می کنند، کمک می کند نرم افزارها را ارتقا دهند و اشکالات موجود روی نسخه‌های قبلی اپلیکیشن‌ها را برطرف کنند. همچنین این امکان را فراهم می کند تا تیم ها از راه دور روی یک پروژه کار کنند. برای نصب این نرم افزار می توانید از طریق این لینک آن را دانلود و روی سیستم خود نصب کنید.

3- ایجاد یک Repository یا مخزن در GitHub

شما با استفاده از Repository ها که به اختصار Repo گفته می شود، می توانید هر چیزی که مربوط به یک پروژه است گرد آوری و سازمان دهی کنید. مواردی مانند تصاویر، اکسل شیت‌ها، ویدئو‌ها و یا هر چیزی که برای راه اندازی پروژه خود به آن نیاز دارید. اغلب افراد در Repo یک فایل Read me را بارگذاری می کنند. این فایل حاوی همه اطلاعاتی است که برای پروژه به آن نیاز است. هر فردی که این پروژه را بخواهد استفاده کند با خواندن این فایل می تواند اطلاعات کلی را از پروژه ما دریافت کند.

برای ایجاد یک Repository جدید باید مراحل زیر را دنبال کنید.

  1. روی گزینه New repository در گوشه سمت راست بالای صفحه گیت هاب خود کلیک کنید.
  2. سپس برای این مخزن یک اسم انتخاب کنید و برای آن مختصری توضیحات بنویسید.
  3. روی کادری که می‌گوید «Initialize this repository with README file» تیک بزنید.
  4. روی گزینه “Create Repository” کلیک کنید.

4- ایجاد یک Branch جدید در گیت هاب

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

هر پروژه در مخزن دارای یک شاخه اصلی به نام Master است و این شعبه و یا شاخه اصلی می تواند چندین زیرشاخه داشته باشد. شما می تواند روی هر یک از این زیر شاخه ها به صورت مجزا کار کرده و در نهایت آن ها را به Master ادغام کنید.

برای ایحاد یک Branch در گیت هاب باید مراحل زیر را طی کنید.

  1. به صفحه مخزن جدید خود بروید.
  2. از منوی کشویی گزینه branch: Master را انتخاب کنید.
  3. اسم زیرشاخه خود را انتخاب کنید.
  4. گزینه Create Branch را بزنید.

حالا می‌توانید روی زیرشاخه های مختلف از یک پروژه کار کرده و یا آن را با دیگران به اشتراک بگذارید.

5- ایجاد تغییرات روی Branch در GitHub

برای ایحاد تغییرات روی یک شعبه باید اقدامات ریر را انجام دهی:

  1. روی نماد شعبه (branches) ایجاد شده در مخزن خود کلیک کنید.
  2. وقتی شعبه مورد نظر باز شد هر تغییری را که لازم است روی آن ایجاد کنید.
  3. روی نماد مداد در قسمت سمت راست بالا کلیک کنید.
  4. تغییرات خود را با نوشتن یک پیام commit توصیف کنید و سپس روی “commit changes” کلیک کنید. به هر تغییر ایجاد شده یک commit میگویند.
  5. هر Commit جزئیات مربوط به تغییرات ایجاد شده روی پروژه را اعلام می‌کند. این commit ها به افراد عضو یک پروژه کمک می‌کنند تا دریابند چرا روی هر پروژه تغییر ایجاد شده است و این تغییر مربوط به چه زمانی است.

6- ایجاد یک Pull Request جدید

Pull Request به منظور ادغام هر شاخه‌ای در شعبه شخص دیگر ایجاد می‌شود. گیت هاب از این امکان به منظور اطلاع دادن به طرف‌های مربوطه در مورد درخواست الحاق تغییرات در شعبه استفاده می‌کند.

هر زمان که یک commit کامل شد می‌توانید درخواست Pull Request را صادر کنید. برای این که فرد مورد نظر شما در جریان ارائه این درخواست قرار بگیرید باید قبل از نام او یک علامت @ درج کنید.

برای ارائه درخواست Pull Request باید :

  1. به سربرگ Pull Request بروید.
  2. دکمه new Pull Request را بزنید.
  3. در کادر example comparisons شاخه‌ای را که ساخته‌اید پیدا کنید.
  4. مطمئن شوید تغییرات ایجاد شده همان چیزی است که مدنظرتان بوده است.
  5. درخواست خود را عنوان کنید و تغییرات را به‌طور خلاصه شرح دهید.
  6. روی گزینه Pull Request کلیک کنید.

7- Merge کردن یک Pull Request در Git

ممکن است لازم باشد Pull Request خود را با دیگری ادغام کنید تا دیگران در بخش Master در جریان جزئیات کار و تغییرات آن قرار بگیرند. برای این کار :

  1. روی گزینه merge pull request کلیک کنید.
  2. سپس روی گزینه confirm merge را انتخاب کنید.
  3. شاخه‌ای را که ادغام کرده‌اید، پس از اینکه در Master قرار داده شد حذف کنید.

آیا گیت هاب پولی است؟

گیت هاب هم مثل اکثر سایت های ارائه‌ خدمات آنلاین، دارای پلن های رایگان و پولی است. به طور کلی، طرح‌های گیت هاب به دو گروه فردی و تیمی تقسیم می‌شود.

طرح‌های فردی

طرح‌های فردی، دارای دو حالت رایگان و حرفه‌ای (Pro) است. از مهم‌ترین ویژگی‌های طرح‌های رایگان گیت هاب عدم محدودیت زمانی است! یعنی می‌توانید با ایجاد یک اکانت رایگان، برای همیشه دارای Repo های نامحدود Public و Private باشید. همچنین می توانید پروژه‌ها را مدیریت کنید و مشکلات و باگ‌ها را ردیابی کنید. این طرح برای اکثر کاربران مناسب است.

طرح‌های پولی

اما طرح‌های پولی که در حال حاضر نسخه حرفه ای آن هزینه‌ی 7 دلاری برای هر ماه دارد، دارای امکانات بیشتری هستند. همکاران نامحدود (که برای طرح های رایگان 3 همکار است)، ایجاد ویکی‌ها، شاخه‌های محافظت‌شده، گراف‌ها و نمودارهای مختلف برای اطلاعات و آمار انبارها و … از ویژگی‌های طرح‌های پولیست.

پلان‌های تیمی که دارای امکانات بیشتری مثل کنترل دسترسیِ تیمی، صدور قبض و مدیریت کاربران هستند از 9 دلار قیمت‌گذاری شده‌اند. پلان شرکتی، یعنی آخرین و بالاترین پلان در حال حاضر بدون قیمت بوده و نیازمند تماس با گیت هاب است. گیت هاب دارای یک صفحه وب برای مقایسه ویژگی‌ها و امکانات پلان‌های مختلف است که از همان صفحه اول در دسترس است.

GitLab چیست؟

گیت لب یکی از رقبای سایت GitHub محسوب می شود. تفاوت عمده‌ی GitLab این است که بسیاری از امکانات پولی گیت هاب را به صورت رایگان در اختیار شما قرار می دهد. مفاهیمی که در بالا معرفی کردیم در گیت لب نیز کاربرد دارد و شما می توانید از آن ها نیز استفاده کنید.

جمع بندی

در این مقاله از تیک4 قصد داشتیم سیستم مدیرت نسخه گیت هاب و Git را معرفی کنیم. مفاهیم کلی آن را آموزش دهیم و روش کار با آن ها را یاد گرفتیم. امیدواریم بتوانید با استفاده از آن ها کار هایی تیمی خود را راحت تر مدیری کنید. شما می توانید سوالات و نظرات خود را در مورد این مقاله در قسمت دیدگاه ها به اشتراک بگذارید.

خروج از نسخه موبایل