GitHub چیست؟ آشنایی با گیت هاب؛ محبوبترین ابزار کنترل نسخه
به عنوان برنامهنویسی که در یک تیم چند نفره کار میکند، احتمالا با مشکل عدم هماهنگی برای کار روی سورس کد و در نتیجه مشکلات مختلفی که برای کد ایجاد میشود، روبرو شدهاید. چاره چنین مشکلی، استفاده از ابزارهای کنترل نسخه است. با این حساب، حتما اسم GitHub هم به گوشتان خورده است. گیتهاب محبوبترین ابزار کنترل نسخه و ریپوزیتوری (Repository) تحت وب است.
ابزارهای کنترل نسخه مانند گیتهاب که هسته اصل آنها گیت است، هر تغییری را که از زمان ساخت کد روی آن ایجاد شود ذخیره میکنند و با کمک آنها، میتوانید نسخههای مختلف از کد نرمافزار را ببینید، مدیریت کنید و یا حتی در صورت نیاز، بازخوانی کنید. در این مقاله قصد داریم با کنترل نسخه، Git و ابزار تحت وب GitHub آشنا شویم و از کاربردهای آنها صحبت کنیم. با ما همراه باشید.
کنترل نسخه چیست؟
ابزارهای کنترل نسخه، از بهترین ابزارهای توسعه نرمافزار هستند که به کمک آنها میتوانید هر تغییری را که روی سورس کد برنامه ایجاد شده است ذخیره کنید، ردیابی کنید و با هر تغییر یک نسخه جدید از کد ایجاد کنید. نکته بسیار مهم این است که با ابزارهای کنترل نسخه، میتوانید در صورت بروز خطاهای مخرب، به نسخه قبلی برنامه برگردید تا زمان کافی برای رفع خطا را داشته باشید.
هرچه یک پروژه نرمافزاری بزرگتر باشد، لزوم استفاده از کنترل نسخه هم بیشتر میشود. چرا که این فناوری به تیمها کمک میکند تا همزمان باهم، بدون اینکه تغییرات باعث خراب شدن کد شوند، روی یک سورس کد کار کنند و در نهایت نتیجه را پس از اطمینان از صحت عملکرد کد، با سورس اصلی ادغام کنند. البته تمام این ابزارها مختص به برنامهنویسی و مدیریت سورس کد نیستند؛ ابزارهایی مانند Google Docs، Google Sheets و … هم از انواع کنترل نسخه هستند که هر کدام در زمینههای مختلفی استفاده میشوند.
گیت (Git) چیست و چه کاربردی دارد؟
Git یک نرمافزار کنترل نسخه متن-باز است که توسط لینوس توروالدز، برای مدیریت و ردیابی تغییرات فایلها و سورس کد ایجاد شده است. گیت در واقع یک سیستم کنترل نسخه توزیعشده است؛ به این معنی که تمام سورس کد و تاریخچه آن، علاوه بر سرور مرکزی روی سیستم اعضای تیم هم وجود دارد. به همین خاطر اعضای تیم میتوانند به راحتی روی شاخهها (Branch) کد کار کنند و در نهایت آنها را در کد اصلی ادغام کنند. خوب است بدانید که فرایند GitOps به کمک گیت و پلتفرمهای ابری ممکن میشود.
گیت هاب (GitHub) چیست؟
گیتهاب (GitHub) یک ابزار کنترل نسخه تحت وب است که روی بستر گیت ساخته شده است. GitHub به توسعهدهندهها این امکان را میدهد تا به صورت رایگان از ریپوهای عمومی (public) این سیستم برای ایجاد تغییرات و بهبودها روی کد خود استفاده کنند. اما برای استفاده از ریپوهای خصوصی (private)، باید مبلغی را پرداخت کنند که با توجه به پلن انتخابی آنها متفاوت است.
هر ریپو (Repository) شامل تمام فایلهای یک پروژه و تاریخچه تغییرات فایلها است. چندین نفر میتوانند به یک ریپو دسترسی داشته باشند و از دادههای آن استفاده کنند. از گیتهاب میتوانید برای انواع مختلفی از فایلها و پروژهها استفاده کنید؛ اما رایجترین کاربرد آن برای سورس کد پروژههای برنامهنویسی است.
در کنار امکاناتی که گیتهاب برای توسعه به شما میدهد، امکاناتی هم دارد که به شما کمک میکند تا برند شخصی خود را بسازید و مهارتهای خود را به صورت عمومی به نمایش بگذارید. شما میتوانید پروفایل خود را شخصیسازی کنید و نمونه کارهای خود را در پروفایل و ریپو خود قرار دهید. این ویژگیها گیتهاب را به یک شبکه اجتماعی برای برنامهنویسها و سایر افرادی که با آن کار میکنند، تبدیل میکند.
گیتهاب چه ویژگیها و امکاناتی دارد؟
گیتهاب با استفاده از سرویس میزبانی (hosting)، رابط آنلاینی که برای استفاده از گیت دارد و همچنین ابزارهای مدیریت همکاری، امکان کدنویسی تیمی و اجتماعی را برای برنامهنویسها فراهم میکند. در واقع میتوانیم به GitHub به چشم یک شبکه اجتماعی برای توسعهدهندههای نرمافزار نگاه کنیم. اعضای این جامعه میتوانند یکدیگر را دنبال کنند، به کارهای هم امتیاز بدهند، به صورت عمومی یا خصوصی با هم در ارتباط باشند و از بهروزرسانیهای جدید پروژههای متن-باز، با خبر شوند.
بعضی از امکانات اصلی گیتهاب را میتوانید در ادامه ببینید:
- با استفاده از گزینه Fork یا Branch، میتوانید یک نسخه از کد را کپی بگیرید و بدون اینکه در سورس اصلی تغییری ایجاد شود، تغییرات خود را اعمال کنید.
- با استفاده از دستور Pull میتوانید یک درخواست به مالک اصلی ریپو بفرستید تا به شما اجازه اعمال تغییراتتان را بدهد.
- اگر مالک اصلی ریپو تغییرات شما را تایید کند، میتواند به گزینه Merge این تغییرات را با سورس کد اصلی ادغام کند.
- همچنین اگر بخواهید برعکس Pull عمل کنید و تغییرات روی سیستم شخصیتان (Local) را روی ریپوی آنلاین بفرستید، میتوانید از دستور Push استفاده کنید.
- بعد از ایجاد تغییرات، باید آنها را با استفاده از دستور Commit ثبت و ذخیره کنید. بعد از استفاده از دستور کامیت، یک نسخه جدید از سورس کد ایجاد میشود و هر کامیت، یک شناسه یکتا (Unique ID) دارد.
- در نهایت با استفاده از دستور Clone میتوانید یک نسخه محلی (لوکال) از ریپوی آنلاین را روی سیستم خود داشته باشید.
کجا از گیتهاب استفاده میشود؟
از GitHub برای ذخیره، ردیابی و همکاری روی پروژههای نرمافزاری در حوزههای مختلف استفاده میشود. برای مثال:
- کسب و کارها از گیتهاب به عنوان یک ابزار کنترل نسخه استفاده میکنند تا اعضای تیم توسعه تغییرات اعمال شده روی سورس کد را ببینند و توسعهدهندهها بتوانند با هم روی آن کار کنند. معمولا تیمهای توسعه نرمافزار، دواپس و … از این ابزار برای هماهنگی بیشتر استفاده میکنند.
- دانشجویان و اساتید برنامهنویسی میتوانند از این ابزار در مواقع مختلف استفاده کنند. مجموعه Student Developer Pack که توسط گیتهاب ارائه میشود، به اساتید و دانشجویان مجموعه از منابع کم هزینه را برای یادگیری میدهد. دانشجویان از این پلتفرم برای یادگیری توسعه وبسایت، کار روی پروژههای برنامهنویسی خلاق و میزبانی رویدادهای مجازی استفاده میکنند.
- توسعهدهندگان نرمافزارهای متن باز، از گیتهاب برای به اشتراکگذاشتن پروژههای خود با سایر افراد استفاده میکنند. در این پلتفرم، جامعه توسعهدهندهها کارهای خود را با سایر افراد به اشتراک میگذارند و روی بهبود سورس کد با هم همکاری میکنند.
- افراد غیر برنامهنویس هم از گیتهاب برای پروژههای مولتیمدیا و مستندسازی استفاده میکنند. برای مثال راهنمای جامع استفاده از خط فرمان با عنوان «The art of the command line» یا ریپوی «Open Source Cookbook» که شامل مجموعهای از دستورهای آشپزی است، از مواردی هستند که به کمک گیتهاب ایجاد شدهاند.
شروع کار با GitHub
برای استفاده از گیتهاب و ریپوهای آن، باید مراحل زیر را طی کنید:
در مرحله اول، باید با خط فرمان یا Command Line آشنا شوید. راه ارتباطی کاربر با گیتهاب از طریق خط فرمان است؛ بنابراین آشنایی با این رابط و فرمانهای خطی، لازمه استفاده از گیتهاب است. برای یادگیری خط فرمان میتوانید از آموزشهای مختلف استفاده کنید و یا برای سادهتر کردن این فرایند، از نسخه دسکتاپ GitHub کمک بگیرید.
بعد از یادگیری خط فرمان، نوبت به نصب Git میرسد. هرچند گیت به صورت پیشفرض روی سیستمهای Mac و لینوکس نصب شده است، اما در صورت نبود آن روی سیستم، با کمک راهنمایی که در سایت گیت (git-scm) وجود دارد میتواند آن را به سادگی و رایگان نصب کنید. اگر نسخه دسکتاپ گیتهاب را نصب کنید، یک نسخه خط فرمان از گیت هم روی سیستم شما نصب میشود.
حالا که زیرساخت لازم را آماده کردید، باید در گیتهاب برای خود یک حساب کاربری بسازید. برای این کار به یک ایمیل فعال نیاز دارید. بعد از ثبتنام، یک ایمیل تایید حساب کاربری برای شما میآید و بعد از تایید ایمیل، حساب شما فعال میشود.
حالا شما میتوانید برای خود یک ریپوزیتوری بسازید. در صفحه اصلی روی علامت + بالای صفحه بزنید و سپس گزینه «New repository» را انتخاب کنید.
در صفحه بعد یک اسم برای ریپوی خود انتخاب کنید؛ میتوانید در بخش Description توضیح کوتاهی درباره ریپو بنویسید. سپس نوع ریپو را Public یا عمومی انتخاب کنید و در پایین صفحه، گزینه «Create repository» را بزنید. اولین ریپوی شما ساخته شد و آماده کار است.
مزایای GitHub
همانطور که گفتیم، GitHub برای همکاری مشترک بین توسعهدهندهها ایجاد شده است و یک کنترل نسخه توزیع شده است. تیمهای توسعهدهنده با کمک گیتهاب، میتوانند از یک Git Repository مرکزی استفاده کنند و تغییرات مختلفی را که روی سورس کد اعمال شده است، ردیابی کنند.
از مزایای اصلی گیتهاب میتوانیم به موارد زیر اشاره کنیم:
- ردیابی نسخههای مختلف و در صورت نیاز، برگشت به نسخههای قبلی را راحت میکند.
- کار با پروژههای متن باز و ایجاد تغییر و بهبود روی آنها را راحت میکند.
- به فرایند مستندسازی (Documentation) کمک میکند.
- به شما اجازه میدهد تا مهارتهای برنامهنویسی خود را به خوبی به نمایش بگذارید.
- به راحتی با نرمافزارهای مختلف ادغام میشود و فرایند توسعه را راحتتر و سریعتر میکند.
جمعبندی؛ مروری بر گیتهاب
در این مقاله سعی کردیم تا مروری بر کلیات GitHub، کاربردهای این ابزار محبوب و نحوه استفاده از آن داشته باشیم. اگر عضوی از یک تیم توسعه هستید و هنوز شروع به استفاده از Git نکردهاید، بهتر است هرچه سریعتر به فکر پیادهسازی این سیستم در پروژه خود باشید. چرا که هر زمان ممکن است با خطایی روبرو شوید که شما را ناچار به برگشت به نسخههای قبلی نرمافزار کند و این کار به کمک گیت، بسیار راحتتر خواهد بود.
همچنین در تیمهای دورکار و یا پروژههای بزرگ، میتوانید از نسخه اشتراکی گیتهاب استفاده کنید تا منابع خود را روی ریپوهای خصوصی نگه دارید. یادگیری گیت و گیتهاب بسیار راحت است و وقت بسیار کمی از شما میگیرد. با کمک منابع مختلف ویدیویی انگلیسی یا فارسی، میتوانید کار با این ابزار حیاتی را یاد بگیرید و از آن در پروژههای خود استفاده کنید.
منابع: