اگر کاربر حرفهای و فعال در دنیای بلاک چین باشید، حتما سروکارتان به گیت هاب برخورده و برای دسترسی به بسیاری از نرمافزارها و کدهای منبع یک شبکه بلاک چینی نیاز داشتید که کار با این سرویس را یاد بگیرید. حتی اگر قصد داشتید روی گوشی اندرویدی یا روی لپتاپتان یک نرم افزار متن باز نصب کنید، احتمالا به کلمه گیت هاب برخوردید و برایتان سوال شده که گیت هاب چیست و چرا بعضی از نرمافزارها روی این سایت قرار دارند.
از طرفی، اگر یک برنامه نویس یا توسعهدهنده وب هستید، حتما متوجه شدید که گیت هاب یکی از ابزار اساسی و مهم در حوزه کاری شماست. در این مقاله قصد داریم به توضیح و آموزش کار با این سرویس محبوب و پرکاربرد بپردازیم.
گیت هاب (GitHub) چیست؟
گیت هاب (GitHub) یک سرویس هاست مبتنی بر ابر (Cloud) است که از گیت برای مدیریت کدها و پروژههای نرمافزاری استفاده میکند. این پلتفرم به توسعهدهندگان کمک میکند تا به راحتی با یکدیگر همکاری کنند، کدهای خود را مستند کنند و در پروژههای متن باز مشارکت داشته باشند.
اصطلاح گیت هاب (GitHub) از دو بخش گیت و هاب تشکیل شده است که برای درک درست از این سرویس باید به طور جداگانه به توضیح این دو بخش بپردازیم.
گیت (Git) یک سیستم کنترل نسخهای (Version Control System) توزیعشده است که برای مدیریت تغییرات در کدهای برنامه نویسی استفاده میشود. این ابزار به توسعهدهندگان و برنامهنویسان اجازه میدهد که تغییرات را پیگیری کرده، نسخههای مختلفی از پروژه را ذخیره کنند و در یک محیط تیمی بهصورت هماهنگ با یکدیگر همکاری کنند.
هاب (Hub) سیستم کنترل نسخهای است که به دلیل برتریهایی که نسبت به سایر سیستمها دارد، توسط اکثر توسعهدهندگان ترجیح داده میشود. هاب معمولا در ذخیره کردن تغییرات فایلها عملکرد بهتری دارد و در بین تمام سیستمها به نوعی مرجع اصلی برای اعمال تغییرات و استفاده محسوب میشود.
تفاوت بین Git و GitHub
درحالیکه گیت یک ابزار کنترل نسخه است که روی سیستمهای محلی نصب میشود، گیت هاب یک پلتفرم آنلاین سرویسدهی برای میزبانی و مدیریت پروژههای گیت است. به بیان ساده، گیت به شما کمک میکند که تغییرات کد خود را کنترل کنید و گیت هاب این تغییرات را روی فضای ابری ذخیره و بهاشتراک بگذارد.
گیت هاب چه کاربردهایی دارد؟
گیت هاب یکی از کلیدیترین ابزارها برای توسعهدهندگان وب و پروژههای متنباز است که از مهمترین کاربردهای آن میتوان به موارد زیر اشاره کرد:
۱. کنترل نسخه (Version Control)
گیت هاب امکان ذخیره و پیگیری تغییرات در کدها را فراهم میکند و به توسعهدهندگان این امکان را میدهد که به نسخههای قبلی کدهای خود بازگردند.
۲. امکان همکاری تیمی
با استفاده از مخازن (Repositories)، تیمهای برنامهنویسی میتوانند بهطور همزمان روی یک پروژه کار کرده و تغییرات را مدیریت کنند.
۳. مستندسازی
گیت هاب امکان نوشتن مستندات پروژه را از طریق فایلهای README و Wiki فراهم میکند.
۴. مدیریت پروژه
با قابلیتهایی مانند Issues و Projects، تیمها میتوانند تسکهای خود را برنامهریزی و مدیریت کنند.
۵. شبکهسازی و مشارکت در پروژههای متنباز
برنامهنویسان میتوانند در پروژههای متنباز مشارکت کنند و کدهای خود را با دیگران به اشتراک بگذارند. در این حین میتوانند از کامیونیتی توسعهدهندگان استفاده کنند و با پروژههای جدید آشنا شوند و مهارتهای خود را افزایش دهند.
۶. یکپارچگی با ابزارهای دیگر
گیت هاب با ابزارهایی مانند CI/CD، Docker، Slack و Jira یکپارچه میشود و همین ویژگی در سهولت و راحتی کار توسعهدهندگان نقش بسزایی دارد.
۷. آموزش و یادگیری
پلتفرم گیت هاب مکانی عالی برای یادگیری و تمرین مفاهیم برنامهنویسی و کنترل نسخه است.
چگونه از گیت هاب استفاده کنیم؟
حالا نوبت آن است که نحوه استفاده از گیت هاب را یاد بگیریم. برای این منظور مراحل زیر را طی کنید:
۱. نصب گیت (Git)
اولین مرحله از آموزش گیت هاب این است که گیت را روی سیستم خود نصب کنید. البته میتوانید از نسخه وب آن نیز استفاده کنید. (لینک دانلود گیت)
۲. ساخت اکانت در گیت هاب
برای استفاده از امکانات گیت هاب، باید یک حساب کاربری ایجاد کنید. پس از ورود به وبسایت و دانلود گیت، دکمه ثبت نام (Sign up) را بالای صفحه مشاهده خواهید کرد.
پس از کلیک روی دکمه Sign up به صفحهای هدایت میشوید که باید مشخصات خود را یعنی نام کاربری و آدرس ایمیل را وارد کنید. آدرس ایمیل شما باید آدرسی معتبر باشد؛ زیرا گیتهاب برای فعال کردن حساب شما یک ایمیل تایید برای شما ارسال خواهد کرد.
هنگامی که آدرس ایمیل خود را تایید کردید، باید طرح مورد نظر خود را انتخاب کنید. گیتهاب سه طرح کلی ارائه میدهد که شامل گزینههای رایگان، تیمی و سازمانی است. طرح رایگان برای توسعهدهندگانی مناسب است که میخواهند از گیتهاب برای پروژههای شخصی خود استفاده کنند. طرح تیمی نیز برای تیمهایی است که میخواهند در پروژهها همکاری کنند و طرح سازمانی برای سازمانهای بزرگ است و پیچیدگیهای خود را دارد. بعد از طی کردن این مراحل، ساخت اکانت شما به پایان رسیده است و به داشبورد خودتان هدایت میشوید و میتوانید فعالیت خود را آغاز کنید.
۳. ایجاد یک Repository یا مخزن
مخزن فضایی است که کدها و تغییرات پروژه در آن ذخیره میشوند. قبل از هر چیز، باید یک مخزن پروژه راهاندازی کنید تا به کمک گیت آن را مدیریت کنید. ترمینال را باز کنید و در دایرکتوری پروژه خود دستور . git init را وارد کنید.
با این کار یک دایرکتوری مخفی با نام «git». در دایرکتوری پروژه شما ساخته خواهد شد. این دایرکتوری همان مسیری است که گیت دیتابیس و تنظیمات خود را در آن ذخیره میکند تا تغییرات پروژه شما را دنبال کند.
۴. ایجاد برنچ (Branch)
برای ایجاد تغییرات در پروژه بدون تاثیر بر نسخه اصلی، باید از Branch استفاده شود. شاخه یا برنچ (Branch)، نسخهای فورک شده از پروژه اصلی است که روی آن کار میکنیم. این ویژگیِ مهم و ضروری، در اکثر «سیستمهای کنترل نسخه» (Version Control Systems) فعلی وجود دارد. یک پروژه ممکن است برنچهای زیادی داشته باشد که برای توسعه یک بخش خاص ایجاد شده تا در طول انجام کار روی نسخه اصلی مشکلی پیش نیاید.
برای ساخت و ایجاد یک برنچ جدید از ترمینال دستور git checkout -b develop را اجرا کنید تا شاخهای به نام develop ساخته شود. این شاخه در ابتدا یک کپی از شاخه اصلی است. یعنی اگر دستور git status را اجرا کنید همان دو تغییر اعمالشده در README.md را مشاهده خواهید کرد. حالا فرض کنید میخواهیم همین دو کامیت را در شاخه اصلی تلفیق کنیم. برای انجام این کار ابتدا باید مشخص کنید که قصد تلفیق تغییرات موجود در کدام شاخه را دارید. سپس، دستور git checkout master را اجرا کنید. حالا باید تغییرات را از شاخهای که در حال کار روی آن بودهاید، در این شاخه تلفیق کنید. برای اینکار دستور git merge develop را اجرا کنید. وقتی کار تمام شد، پیامی مبنیبر تغییر فایلها و خلاصه گزارشی از آن تغییرات به شما نشان داده خواهد شد.
۵. ایجاد و انجام تغییرات روی یک Branch
پس از ایجاد Branch، میتوانید بدون ترس از خرابکاری روی کد اصلی تغییرات و ویرایشهای مورد نظر خود را اعمال کنید. در گیتهاب به تغییرات اعمالشده کامیت (commit) میگویند. هر کامیت یک پیام کامیت به همراه دارد که توضیح کوتاهی در رابطه با دلیل اعمال آن تغییر است. پیامهای کامیت به سایر مشارکتکنندگان در پروژه این امکان را میدهد که متوجه شوند شما چه تغییری را به چه دلیل اعمال کردهاید. برای اعمال یک تغییر:
- روی فایل README.md کلیک کنید.
- روی آیکون مداد در گوشه بالا سمت راست کلیک کنید تا بتوانید آن را ویرایش کنید
- در ویرایشگر، کمی درباره خود بنویسید (اگر در پروژههای متن باز مشارکت میکنید و سایر توسعهدهندگان با شما آشنایی ندارند).
- یک پیام کامیت برای توضیح تغییرات خود بنویسید.
- روی دکمه Commit changes کلیک کنید.
۶. درخواست Pull
Pull Request یا PR به تیم اجازه میدهد تغییرات پیشنهادی شما را بررسی کنند. pull request هسته تمام همکاریها در گیتهاب را تشکیل میدهد. با ارسال چنین درخواستی، شما از صاحب برنچ میخواهید که تغییرات انجامشده توسط شما را بررسی و در صورت صلاحدید به شاخه اصلی اضافه کند. درخواست اعمال تغییرات، تغییرات بین دو شاخه را نمایش میدهند. تغییرات، حذف و اضافهها در رنگهای سبز و قرمز نشان داده میشوند.
با استفاده از سیستم منشن در گیتهاب میتوانید در سیستم پیام pull request خود از سایر افراد یا تیمها درخواست کنید که درباره ویرایشهای شما نظر بدهند. شما میتوانید درخواست اعمال تغییرات را برای خود نیز ارسال کنید. یعنی وقتی تغییری را بهطور کامل در شاخه فرعی انجام دادید، میتوانید برای تلفیق آن در شاخه اصلی از pull request استفاده کنید.
۷.ادغام یا Merge کردن درخواست Pull
پس از تایید PR، تغییرات در Branch اصلی ادغام میشوند. در این گام:
- روی دکمه سبزرنگ Merge pull request کلیک کنید تا تغییرات شما در شاخه اصلی اعمال شوند.
- روی Confirm merge کلیک کنید.
- حالا که تغییرات را اعمال کردهاید، میتوانید با استفاده از دکمه Delete branch شاخه فرعی را حذف کنید.
بررسی ویژگیهای پیشرفته گیت هاب
تا اینجا شما به عنوان یک فرد تازه کار موفق شدید از خدمات اولیه سرویس گیت هاب به خوبی استفاده کنید. برای درک بهتر نحوه کار با گیت هاب، میتوانید یکی از پروژههای نمونه را مشاهده کنید.
اما این سرویس ویژگیهای زیاد دیگری دارد که بعد از تسلط روی فعالیت های ابتدایی میتوانید از این خدمات نیز بهره ببرید. از مهمترین ویژگی های پیشرفته گیت هاب میتوان به موارد زیر اشاره کرد:
- گیتهاب Actions: برای اجرای خودکار فرآیندهای CI/CD استفاده میشود.
- گیتهاب Copilot: ابزاری هوشمند برای کمک به برنامهنویسی با پیشنهادات خودکار کد.
- گیتهاب Packages: مدیریت بستههای نرمافزاری برای پروژهها.
- گیتهاب Discussions: بخشی برای گفتگو و تبادلنظر بین توسعهدهندگان.
- قابلیت Self-Hosting و GitHub Enterprise: نسخهای از گیت هاب که میتوان روی سرورهای داخلی سازمانها و شرکت ها اجرا کرد.
- امنیت و اسکن کد: ابزارهایی برای بررسی امنیت و شناسایی آسیبپذیریهای موجود در کدها.
گیت هاب برای چه کسانی مناسب است؟
گیت هاب برای مبتدیان و حرفهایهاست؛ هرچند بیشتر کد نویس ها، برنامهنویسان و توسعهدهندگان وب از آن استفاده میکنند، گیتهاب برای تمامی کسانی که به نوعی با مدیریت پروژه و به اشتراکگذاری منابع اصلی و فایلهای پروژه درگیر هستند و نیاز به نوعی همکاری تیمی با سایر افراد متخصص در حوزه خود دارند، مناسب است. به طور کلی میتوان گفت گیت هاب برای افراد زیر بیشترین کاربرد را دارد:
- توسعهدهندگان فردی: برای مدیریت پروژههای شخصی و یادگیری مفاهیم برنامهنویسی.
- فعالین و تحلیلگران حوزه بلاک چین: برای بررسی کد شبکههای بلاک چینی، کوین و توکنهای دیجیتال به منظور تحلیل بنیادی یک پروژه
- تیمهای کوچک و بزرگ: برای هماهنگی بین اعضای تیم و مدیریت پروژههای نرمافزاری.
- دانشجویان و تازهکارها: مکانی ایدهآل برای یادگیری، تمرین و مشارکت در پروژههای متنباز است.
سوالات متداول
- گیت هاب چیست؟
گیت هاب یک پلتفرم سرویسدهی ابری برای مدیریت کدها و همکاری تیمی بر بستر گیت است.
- آیا گیت هاب رایگان است؟
بله، گیت هاب نسخه رایگان دارد، اما پلنهای پولی نیز برای امکانات بیشتر نیز ارائه میدهد که اغلب کاربردهای سازمانی دارد.
- تفاوت Git و GitHub چیست؟
گیت یک ابزار کنترل نسخه است، درحالیکه گیت هاب یک سرویس میزبانی برای پروژههای گیت محسوب میشود.
- گیت هاب برای چه کسانی مناسب است؟
گیت هاب برای توسعهدهندگان، تیمهای نرمافزاری، دانشجویان و افرادی که به دنبال همکاری در پروژههای متنباز هستند مناسب است.
- آیا میتوان در گیت هاب کار پیدا کرد؟
این سایت به طور مستقیم برای پیدا کردن کار مناسب نیست ولی اگر یک برنامهنویس فریلنسر هستید و به دنبال پروژههایی برای انجام کار هستید، گیت هاب میتواند شما را به دنیای توسعهدهندگان و برنامهنویسان در تمام دنیا متصل کند و شما میتوانید با تناسب به قدرت شبکهسازی خود از این فرصت برای پیدا کردن کار استفاده کنید.
جمعبندی
در این مطلب به طور کلی با چیستی گیت هاب، کاربردهای آن و آموزش ابتدایی برای استفاده از این سرویس آشنا شدیم. در ادامه گریزی تیتروار به ویژگیهای پیشرفته آن زدیم و کمی از جامعه مخاطبین آن گفتیم. شما با خواندن این مقاله تا حدودی با گیت هاب و نحوه کار کردن با آن آشنا شدید، اما برای اینکه تبدیل به یک کاربر حرفهای در گیت هاب شوید، علاوه بر نیاز به آموزشهای پیشرفتهتر، به تمرین و زمان گذاشتن نیز نیاز دارید تا بتوانید خود را یک کاربر حرفهای در استفاده از این سرویس تلقی کنید.
حالا نوبت شماست؛ چقدر تابهحال از گیتهاب استفاده کردهاید؟ نظرات خود را در رابطه با این آموزش و گیت هاب برایمان بنویسید.