گیت هاب چیست؟

گیت هاب چیست
تاریخ بروزرسانی : 18 تیر 1399 | تعداد بازدید : 2527 | زمان خواندن مقاله : 15 دقیقه
پیرامون برنامه نویسی،

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

تاریخچه گیت هاب

سلام جناب گیت هاب خیلی خوشحالیم که دعوت مارو پذیرفتید؛ میشه خودتونو معرفی کنین و بگین متولد چه سالی هستین؟تاریخچه گیت هاب

من هم سلام عرض می‌کنم خدمت شما و دوستداران درسمن بله حتما؛ در سال 2008 آقای Linus Torvalds، مبتکر لینوکس در پاسخ به این نیاز که توسعه‌دهنده و برنامه‌نویس‌های مختلف بتونند به یک قطعه کد خاص دسترسی داشته باشند و تغییرها رو ببینند، نسخه‌های مختلف رو مدیریت کنند و همچنین سابقه تغییرها کنترل بشه، یک پلتفرم همکاری و کنترل ورژن متن-باز تحت عنوان گیت توسعه داد؛ سپس من به دنیا آمده و به برنامه‌نویس‌ها ارائه شدم و در نهایت در سال 2011 به یکی از محبوب‌ترین سرویس‌های عرضه‌کننده Git بر اساس مدل توسعه‌ Software a Software (نرم‌افزار یک نرم افزار ) معرفی شدم.

گیت هاب چیست؟

خب حالا میشه یه کم از خودتون تعریف کنید تا ما شما رو بیشتر بشناسیم. 

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

  • گیت چیست؟

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

گیت هاب چیست

حالا چرا من بر پایه گیت منتشر شدم؟ برای محافظت از پروژه‌های اوپن سورس یک برنامه‌نویس و جلوگیری از سوء‌استفاده برای ذخیره پروژه‌های متن-باز و حفظ حقوق برنامه‌نویس پروژه.

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

  • هاب چیست؟

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

 

بیشتر بخوانید: آیا من یک برنامه نویس فول استک هستم؟ برای پاسخ به این سوال کافیه این مقاله را بخوانیsmiley

 

مفاهیمی که گیت هاب را خاص و محبوب کرده

از معرفی خیلی جالب و شگفت‌آورتون ممنونم اما می‌خواستم بدونم چه چیزی شما رو اینقدر خاص و محبوب کرده؟ 

در پاسخ به این سوالتون باید شما رو با بعضی از مفاهیم خودم آشنا کنم تا خودتون به دلیل محبوبیت من پی ببرید. مفاهیمی که توضیح میدم عبارت هست از:

  • Repository

  • Fork 

  • Branch

  • Commit 

  • Pull Request

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

 Fork در واقع یک شاخه یا انشعابه که وقتی پروژه‌ای رو بر اساس پروژه‌ای که وجود داره ایجاد کنید، مورد اسفاده قرار می‌گیره. اما ممکنه وضعیتی پیش بیاد که شما باید از شاخه اصلی برای انجام تغییرات و اضافه کردن یکسری ویژگی استفاده کنید که در اینصورت باید از شاخه اصلی هم یه کپی داشته باشین تا بعد از انجام تغییرات، اونو به پروژه اصلی به وسیله Pull Request ادغام کنین. در اینجاست که باید از گزینه Branch استفاده کنید.

حالا اگه بخواید توصیفی برای تغییری که ایجاد کردید بنویسین، میتونین از Commit کمک بگیرین. اما بعضی اوقات دوست ندارید تغییراتی که تو پروژتون اعمال کردین توسط برنامه‌نویس اصلی شناخته شه یا در Repo پروژه قرار بگیره که برای اینکار باید از Pull Request یا ادغام(یکپارچگی) بهره ببرین.

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

اصطلاحات رایج گیت هاب چیست؟

تازه متوجه شدم که چرا شما بین برنامه‌نویسان محبوب هستین چون کارشون با شما راحت‌تر انجام میشه.

گیت هاب چیست

حال به این تصویر نگاه کنین و دربارشون برامون توضیح بدین؛ چرا که ما مشتاقانه منتظر صحبت‌های شما هستیم.

در مستطیل شماره‌1، نام پروژه، تعداد افرادی در حال تماشای آن هستند و یا افرادی که با ستاره دادن اونو ارزیابی کردن و تعداد دفعات کپی شدن این پروژه توسط توسعه‌دهندگان برای مشارکت در پروژه است، مشاهده می کنین. مستطیل شماره 2 مربوط به تعداد کامیت‌ها در شاخه فعلی، تعداد شاخه‌ها، نسخه‌های منتشرشده و مشارکت‌کنندگان در پروژه است. شما در مستطیل شماره‌3، نوار انتخاب شاخه رو می‌بینید که در زیر آن فایل‌های مهم پروژه همراه با زمان آخرین باری که تغییرات اعمال شده، مشاهده می‌کنید.

در قسمت راست مستطیل شماره 4 مفاهیمی کلیدی چون Code که یه حالت نمایشی به صورت پیش فرض هست و همچنین فایل‌های پروژه رو نمایش میده و اگر بخواید خودتون یا هم‌تیمی که دارید درخواست، اضافه کردن قابلیتی یا مشکلی در نرم‌افزار و مسائل این چنینی رو مطرح کنید باید از گزینه Issues (مسائل) استفاده شود.

در قسمت Wiki (ویکی) امکان  ثبت جزئی‌تر پروژه وجود داره و اگر بخواید خلاصه‌ای از آمار پروژه مثل مسائل مطرح شده، حل شده و یا حتی حل نشده رو بدونید باید از Pulse یا ضربان استفاده کنید؛ اما اگر می‌خواید از پیشرفت پروژه در طول زمان مطلع بشید، میتونید از گزینه Graphs یا نمودارها بهره ببرید. در نهایت نیز تصویر لینک دسترسی به مخزن رو می‌بینید که اگر قصد داشته باشید نسخه‌ای از اون رو کپی کنین می‌تونین از طریق آدرسی که در اختیارتون هست اقدام کنید.

حالا با کلیلک روی قسمت Commits می‌تونین نگاهی به سوابقتون بندازید.

گیت هاب چیست-توضیح قسمت commit گیت هاب

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

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

پایان مصاحبه

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

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

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

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

شما چه ویژگی‌های دیگه‌ای از گیت هاب می‌شناسید؟ نظرهای خودتون رو در قسمت کامنت با ما درمیان بگذارید.

راستی می‌دونستید که سایت درسمن هم آموزشی در این خصوص داره؟ برای یادگیری این سرویس میزبانی وب روی آموزش git hub کلیک کنید.


کلمات کلیدی :
گیت چیست