گیت هاب چیست؟ هر آنچه باید در مورد GitHub بدانید
گیت هاب (GitHub) چیست؟
گیت هاب، بزرگترین هاست برای میزبانی پروژههای توسعه دهندگان محسوب میشود که توسط یک شرکت آمریکایی ایجاد شده است.گیت هاب هم به صورت رایگان برای پروژههای عمومی و هم بصورت پولی برای پروژههای تجاری قابل استفاده است.هدف اصلی گیت هاب ایجاد محیطی برای کنترل ورژن و همکاری تیمی روی پروژه هاست.کنترل ورژن در گیتهاب توسط گیت انجام میشود. درواقع گیت در گیتهاب یک سیستم کنترل ورژن (version control) است. همچنین واژهی هاب به مفاهیم شبکه اشاره دارد که همکاری تیمی و ایجاد انشعاب در پروژهها را معرفی میکند.
سیستم version control چیست؟
حتماً تجربه کردهاید، در حین برنامه نویسی دچار اشتباهی شوید و آن لحظه بگویید کاش میشد پروژه را به حالت قبل برمیگرداندید!
گیت دقیقاً این امکان را برایتان مهیا کرده است. شما میتوانید نسخهی قبلی پروژه را دریافت و فعال کنید.در واقع گیت قادر است پروژهها را در ورژنهای مختلف به صورت یکپارچه ذخیره کند.اگر پروژهای متن باز باشد، توسعه دهندگان دیگر میتوانند آن را دانلود کنند و تغییراتی را روی آن اعمال کنند. سپس پروژه را با ورژن جدید آپلود نمایند. گیت با حفظ ورژن جدید و ورژنهای قبلی امکانات مفیدی را برای توسعهی پروژهها ایجاد میکند.
واژه«Git» در عبارت گیت هاب چه معنایی دارد؟
Git یک سیستم کنترل است که برای اولین بار توسط Linus Trovalds و به صورت متن باز راه اندازی شد.سیستم گیت از نظر کارکرد شباهت زیادی به سیستم های کنترل دیگه مانند Subversion و CVS دارد.
همانطور که در پاراگراف بالا گفته شد گیت یک سرویس کنترل ورژن است اما پیش از هر چیز باید بدانیم که سیستم کنترل ورژن دقیقا چیست؟به طور مثال هنگامی که طراحان سایت و توسعه دهندگان وب،سایت یا اپلیکیشنی را طراحی میکنند،قبل و بعد از انتشار نسخه رسمی تغییراتی در کد ها اعمال می کنند.
وظیفه سیستم کنترل ورژن این است که این تغییرات را در در درون مخزن خود ذخیره کند تا سایر توسعه دهندگان بتوانند در امر توسعه پروژه های متن باز که به Open Source معروف است همکاری کنند.توسعه دهندگان به کمک این سیستم می توانند نسخه جدید تر را دانلود کرده و تغییرات خود را بر روی آن اعمال کنند و سپس نسخه جدید خود را در این سیستم آپلود کند.این سرویس به سایر توسعه دهندگان کمک میکند تا قادر به دیدن و دانلود تغییرات جدید و مشارکت در آنها باشند.
«Hub» در عبارت GitHub چه معنایی دارد؟
همان طور که گفته شد Git یک سیستم کنترل ورژن است که با همه شباهت هایی که به دیگر سیستم ها دارد،دارای برتری هایی نیز می باشد.در ادامه به مواردی که موجب برتری GitHub نسبت به سایر سیستم های کنترل ورژن می شود اشاره می کنیم.
به طور کلی هاب به دستگاه هایی گفته می شود میتوانند در یک شبکه،تعدادی سیستم را به یکدیگر متصل کند.حال گیت هاب نیز با استفاده از این معنا سیستمی را راه اندازی کرده است که میتواند تمام برنامه نویسان را از سایر نقاط دنیا به یکدیگر متصل نموده و دقیقا مانند یک هاب عمل کند از این رو نام این سرویس GitHub است.
بیایید باهم دلایل علاقهی توسعهدهندگان به گیت هاب را بررسی کنیم و بیشتر با ویژگیهای منحصربهفرد آن آشنا شویم.
مخزن (Repository)
همانطور که از نامش پیداست، مخزن جایی است که تمام فایلهای مربوط به یک پروژه در آن ذخیره میشوند. گاهی واژهی Repository را بهصورت خلاصه یعنی Repo هم نمایش میدهند. هر پروژه مخزن مخصوص خودش را دارد که با URL خاصی هم قابلدسترسی خواهد بود.
ایجاد و ویرایش پروژهها
اصطلاح «Forking» زمانی رخ میدهد که شما پروژهای جدید را بر اساس پروژهای از پیش ایجادشده، ادامه میدهید و یا تغییرات جدیدی را بر آن ایجاد میکنید. این ویژگی فوقالعاده باعث شده است که توسعهی برنامه و پروژههای بیشتری در دستور کار افراد زیادی قرار گیرند. اگر شما هم در گیت هاب با پروژهای مواجه شدید که علاقهمند به مشارکت در آن بودید، میتوانید فایل آن را دانلود و تغییرات موردنظرتان را بر روی نسخهی کپی آن اعمال و سپس نسخهی بازنگری شدهی خود را منتشر کنید. اگر تغییراتی بر روی نسخهی اصلی پروژهای (Original Repository) که بر روی کپی آن کار میکنید اعمال شود، شما هم میتوانید بهراحتی آن تغییرات را به نسخهی کپی خود اضافه کنید.
ارسال درخواست و به اشتراکگذاری
اگر دوست داشتید تغییراتی را که در پروژه اعمال کردید به گوش توسعهدهندگان اصلی برسانید، بهراحتی میتوانید با استفاده از گزینهی Pull Request، درخواست خود را برای آنها ارسال کنید. آنها هم پس از بررسی کار شما در صورت تمایل، تغییرات مدنظرتان را به نسخهی اصلی اضافه خواهند کرد. گیت هاب با این ویژگی، پل ارتباطی شما و توسعهدهندگان اصلی پروژه خواهد بود.
برقراری ارتباطات اجتماعی (Social Networking)
یکی از ویژگیهای قدرتمند گیت هاب، شبکهی اجتماعی آن است که بیشتر از دیگر ویژگیهای آن، به پیشروی پروژهها کمک میکند. در گیت هاب، هر کاربر پروفایل شخصی خود را دارد که بهعنوان رزومهی آن کاربر محسوب میشود. تمام فعالیتهای شما ازجمله مشارکت در دیگر پروژهها از طریق ارسال درخواست به توسعهدهندگان اصلی هر پروژه در این شبکه مشخص است که به معرفی شما و کیفیت کارتان کمک بسیاری خواهد کرد.
با استفاده از گیت هاب میتوان پروژهها را بهصورت عمومی بازنگری و تصحیح کرد و ادامه داد. از این طریق افراد خبره نیز میتوانند اطلاعات و دانش خود را برای پیشروی بهتر پروژه با صاحبان آن به اشتراک بگذارند. قبل از اختراع گیت هاب اگر توسعهدهندگان مشتاق به همکاری در پروژهای بودند، باید از طریق ایمیل و یا راههای ارتباطی دیگر با توسعهدهندگان اصلی تماس برقرار میکردند ولی این پایان کار نبود؛ چراکه بهسختی میتوانستند اعتماد آنها را نسبت به خود و کیفیت کارشان جلب کنند.
لاگ تغییرات (Changelogs)
بررسی تکتک تغییراتی که بر روی هر پروژه اعمال میشود بسیار دشوار است. بهسختی میتوان متوجه شد که چه کسی در چه زمانی چه تغییراتی را انجام داده است و البته محل ذخیرهی این تغییرات کجاست. از طرفی با وجود گیت هاب تمام این مشکلات برطرف شده؛ چراکه لاگ تمامی فعالیتها بر روی مخزن بهراحتی قابلدسترس است.
گیت هاب فقط برای برنامهنویسان نیست!
نکتهی جالبتوجه اینجاست که تنها این توسعهدهندگانِ وب نیستند که از سیستم گیت هاب استفاده میکنند. هر تیمی که در حال اعمال تغییرات بر روی پروژهای است میتواند با امکاناتی که گیت هاب در اختیارش میگذارد به پیشروی پروژهی خود کمک کند. اگر در تیم خود، دائماً در فایلهای ورد خود تغییر ایجاد میکنید، میتوانید از گیت هاب بهعنوان سیستم کنترل ورژن استفاده کنید. البته این راهکار چندان هم رایج نیست؛ چراکه در اغلب مواقع جایگزینهای بهتری هم وجود دارند، اما بهتر است که گیت هاب را هم به خاطر بسپرید.
دیدگاهتان را بنویسید