Github'>
گیتهاب (به انگلیسی: GitHub) یک سرویس میزبانی وب برای پروژههای برنامه نویسان در سراسر دنیا است که از سیستم سورس کنترل گیت استفاده میکنند. گیتهاب با استفاده از روبی آن ریلز و ارلنگ ساخته شدهاست. این سرویس هم دارای گزینه رایگان برای پروژههای متنباز و هم پولی برای پروژههای تجاری است.
گیت هاب در سال 2008 پایهگذاری گردید و بر اساس گزارشی در ژوئن 2011، این سرویس محبوبترین سرویس ارائهدهنده گیت است.
این سایت عملکردهای یک جامعه مجازی شامل: فید، دنبال کننده و گراف شبکه برای نمای دادن توسعه دهندگانی که بر یک نسخهٔ مرجع (مخزن) کار میکنند، را به کاربرانش ارائه میدهد.
در ژوئیه 2012 این شرکت با صد میلیون دلار آمریکا در سری آ سرمایه داران اصلی، از طرف اندرسون هورویتز ردهبندی شد.
در قلب [GitHub] (https://github.com) یک پروژه متن باز که توسط Linus Torvalds (خالق لینوکس) ایجاد شده است به نام Git وجود دارد. در واقع Git یک سیستم کنترل نسخه نرم افزار است. Matthew McCullough یکی از اعضای GitHub میگوید: Git مانند دیگر سیستم های کنترل نسخه، نسخه های نرم افزار را ذخیره، مدیریت و فراخوانی میکند. که البته بیشتر برای کدها استفاده میشود اما Git میتواند برای هر نوع فایل دیگری مانند یک فایل Word یا TXT نیز استفاده شود.
در GitHub میتوان پروژه ها را تحت عنوان Repository ایجاد کرد. اما GitHub به جز امکان ایجاد repository ویژگی های دیگری مانند خط فرمان، رابط گرافیکی، بوجود آوردن همکاری در repositoryهای مختلف و غیره را میدهد.
برای خیلی ها ممکن است سوال پیش آمده باشد چطور یک برنامه نویس از پروژه ای که به صورت اوپن سورس منتشر میکند محافظت کرده و از سوء استفاده جلوگیری میکند؟ بر اساس همین سوال شخص لینوس توروالدز Git را ایجاد کرد برای ذخیره پروژه های متن باز و حفظ حقوق برنامه نویس پروژه سایت گیت هاب بر پایه Git تشکیل شده و به همین منظور استفاده میشود. البته برنامه نویس میتواند پروژه را بصورت خصوصی ذخیره کند و از انتشار عمومی پروژه خودداری کند. با استفاده از این سیستم برنامه نویسان پروژه های متن باز را با خیال راحت و با حفظ حقوق منتشر کنند و به این ترتیب پروژه به نام آن برنامه نویس ثبت خواهد شد. در این سیکل برنامه نویس یک اکانت در این سایت ایجاد و برای هر پروژه متن باز که منتشر میکند یک صفحه (مخزن) ساخته و پروژه را در آن ذخیره میکند.
فرض کنید شما مدیر یک شرکت نرم افزار هستید و قصد دارید یک پروژه برنامه نویسی بزرگ را مدیریت و راهبری کنید. هر یک از اعضای تیم شما در یک مکان هستند و میخواهید هر قسمت پروژه را به یک کدام از انها واگذار کنید و در عین حال میخواهید که امنیت پروژه شما حفظ شوید یعنی بتوانید در همه حال از پروژه خود یک بک آپ داشته باشید و بتوانید مشاهده کنید در طول روز هریک از برنامه نویسان شما چقدر کار کرده است و کدام بخش ها را تغییر داده است. برای اینکار یک Repository جدید روی اکانت خود در گیت هاب ایجاد میکنید و سپس هر فرد میتواند تا جایی که برنامه نویسی کرده است را به سرور ارسال کند تا روی repository قرار بگیرد و بقیه اعضا نیز میتوانند انرا مشاهده کنند.
توسط گیت هاب میتوانید Branch های مختلفی ایجاد کنید و همچنین با هر کامیت که انجام میدهید می توانید بعدا به مرحله های قبل برگردید اگر اشتباهی کرده باشید و از هر مکان به برنامه خود میتوانید دسترسی داشته باشید، حتی اگر برنامه شما مربوط به وب باشد تغییرات را همان لحظه بصورت آنلاین می توانید مشاهده کنید. گیت هاب امکانات مدیریتی فوق العاده ای به شما میدهد که اکنون اکثر برنامه نویسان حرفه ای را شیفته خود کرده است. به این نوع سرویس دهنده ها اصطلاحا کنترل ورژن VC می گویند.
این سه ویژگی fork, pull request و merge هستند که GitHub را قدرتمند میکند. در گذشته برای اینکه یک کاربر بتواند تغییراتی را در یک پروژه متن باز ایجاد کند باید ابتدا آن را دانلود میکرد، سپس تغییرات لازم را اعمال کند، بعد از آن لیستی از تغییرات را به نام patch ایجاد و همراه پروژه به کاربر اصلی آن میفرستد. کاربر اصلی ابتدا باید به کاربر غریبه اعتماد کند سپس patch را مشاهده و در صورت درست بودن تغییرات را اعمال کند.
اما در GitHub زمانی که یک pull request رخ میدهد، کاربر اصلی میتواند پروفایل درخواست دهنده را ببینید و در صورت تایید (merge) به اعتبار درخواست کننده اضافه میشود. این اعتبار میتواند به عنوان یک روزمه شناخته شود.
سایت GitHub دارای ویژگی های دیگری نیز هست. اگر بر روی پروژه های متن باز کار میکنید GitHub اولین قدم مهم است که باید بردارید. بدست آوردن اعتبار و شهرت در دنیای برنامه نویسی با استفاده از GitHub امکان پذیر است.
گیت هاب امکانات بیشتری را در خود پیاده کرده که این سایت را تبدیل به شبکه اجتماعی برای برنامه نویسان کرده است. موارد از قبیل انجمن برای پرسش و مشکلات ، ارسال پیغام خصوصی برای سایر اعضا و …
ممنون از زحمتی که کشیدین ولی مطلب به دلیل چپ چین بودن قابل خوندن نیست. فکر میکنم با پایه گذاران سایت تماس بگیریم