مقدمه
تاکنون با گیت، ابزار قدرتمند کنترل نسخه که روی کامپیوتر ما اجرا میشود، آشنا
شدیم. همچنین دیدیم که برای همکاری تیمی به مخازن ریموت نیاز داریم. اکنون زمان آن است که با
محبوبترین، بزرگترین و تاثیرگذارترین پلتفرم برای میزبانی این مخازن آشنا شویم: گیتهاب
(GitHub).
گیتهاب بسیار فراتر از یک فضای ذخیرهسازی ساده برای کد است. این پلتفرم یک شبکه اجتماعی کامل برای
توسعهدهندگان و یک اکوسیستم غنی از ابزارهای همکاری است که روش توسعه نرمافزار را در سراسر جهان
متحول کرده است. در این درس، به این میپردازیم که گیتهاب دقیقاً چیست و چه تفاوتی با گیت دارد.
گیت در مقابل گیتهاب: یک تفاوت کلیدی
یکی از بزرگترین نقاط سردرگمی برای تازهکاران، تمایز قائل شدن بین گیت و گیتهاب است. بیایید این
موضوع را یک بار برای همیشه روشن کنیم:
- گیت (Git): یک نرمافزار و ابزار خط فرمان است که شما روی کامپیوتر خود
نصب میکنید. گیت یک سیستم کنترل نسخه توزیعشده است که مسئولیت اصلی آن رهگیری تغییرات در
فایلهاست. گیت موتور اصلی است.
- گیتهاب (GitHub): یک پلتفرم و سرویس مبتنی بر وب است. کار اصلی
گیتهاب، میزبانی مخازن گیت شما روی سرورهایش است. گیتهاب یک رابط کاربری گرافیکی زیبا و
مجموعهای از ابزارهای قدرتمند را روی گیت سوار میکند.
یک مثال خوب برای درک این تفاوت، مقایسه ایمیل و جیمیل است. گیت مانند پروتکل
ایمیل (SMTP) است؛ یک فناوری پایهای که به تنهایی کار میکند. گیتهاب مانند
جیمیل (Gmail) است؛ یک سرویس آنلاین که کار با آن پروتکل را بسیار آسانتر و لذتبخشتر کرده و
امکانات جانبی فراوانی به آن اضافه میکند. شما میتوانید بدون گیتهاب از گیت استفاده کنید، اما
نمیتوانید بدون گیت، از گیتهاب استفاده کنید.
گیتهاب چه امکاناتی ارائه میدهد؟
دلیل محبوبیت بینظیر گیتهاب، امکانات فوقالعادهای است که فراتر از میزبانی ساده کد ارائه
میدهد.
میزبانی مخازن و بازبینی کد
قلب گیتهاب، قابلیت میزبانی مخازن گیت شماست. اما مهمتر از آن، ابزار بینظیر Pull
Request است. پول ریکوئست به شما اجازه میدهد تا تغییراتی که در یک برنچ انجام
دادهاید را به تیم پیشنهاد دهید. سایر اعضای تیم میتوانند کد شما را خط به خط بازبینی کرده، کامنت
بگذارند، بحث کنند و در نهایت پس از تایید، آن را با برنچ اصلی ادغام کنند.
ابزارهای همکاری و مدیریت پروژه
گیتهاب مجموعهای از ابزارها را برای مدیریت پروژه ارائه میدهد. بخش Issues یک
سیستم کامل برای رهگیری باگها، درخواست قابلیتهای جدید و مدیریت وظایف است. همچنین
Project Boards به شما اجازه میدهد تا با استفاده از بوردهای کانبان (Kanban)،
جریان کاری پروژه خود را به صورت بصری مدیریت کنید.
کدنویسی اجتماعی (Social Coding)
گیتهاب یک شبکه اجتماعی برای برنامهنویسان است. هر کاربر یک پروفایل دارد که به نوعی رزومه مدرن
او محسوب میشود. شما میتوانید پروژههای دیگران را Fork کنید (یک کپی شخصی از آن
بسازید)، به آنها ستاره (Star) بدهید تا علاقهمندی خود را نشان دهید و سایر
توسعهدهندگان را دنبال (Follow) کنید.
اتوماسیون و CI/CD با GitHub Actions
یکی از قدرتمندترین ویژگیهای گیتهاب، GitHub Actions است. این ابزار به شما
اجازه میدهد تا فرآیندهای مختلفی را به صورت خودکار اجرا کنید. برای مثال، میتوانید تنظیم کنید که
با هر بار push کردن کد، به صورت خودکار تستهای پروژه اجرا شده، نرمافزار بیلد شده و روی
سرور مستقر (deploy) شود.
و امکانات دیگر...
علاوه بر اینها، گیتهاب امکانات دیگری مانند GitHub Pages برای میزبانی رایگان
وبسایتهای استاتیک، Wiki برای ساخت مستندات پروژه، و ابزارهای پیشرفته امنیتی
برای اسکن کد و شناسایی آسیبپذیریها را نیز ارائه میدهد.