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