وبلاگ ها
GitHub چیست؟ آموزش کامل گیت و گیتهاب برای مبتدیان (راهنمای صفر تا صد)
- 5 مرداد 1404
- ارسال شده توسط: alireza.ahmdi
- دسته بندی: فن آوری فناوری اطلاعات هوش تجاری
مقدمه
دنیای برنامهنویسی گسترده و چالشبرانگیز است. برنامهنویسان برای بهبود کیفیت پروژهها و همکاری تیمی نیاز به ابزاری دارند که نسخههای مختلف کد را مدیریت کرده و ارتباط بین افراد را ساده کند. Gitو GitHubدقیقا برای همین هدف طراحی شده اند.
اگر میخواهید روی یک پروژه گروهی با افراد دیگر در سراسر جهان کار کنید، گیتهاب ابزاری ایدهآل برای همکاری، به اشتراکگذاری و مدیریت نسخه های پروژه است.
چکیده
با وجود پیشرفتی که روز به روز در عصر تکنولوژی اتفاق میافتد، باعث بالا رفتن انتظار کاربر میشود. کاربران به دنبال راحتی کار برای رسیدگی به امور خود هستند که یکی از این اختراعات گیتهاب میباشد.
سالها زمان میبرد که یک فرد با آموزش، مطالعه مداوم و کار مستمر تبدیل به یک کد نویس خبره شود. بهطورکلی کد نویسی کار بسیار دشواری است. اگر شما یک کد نویس باشید میدانید که در بسیاری از مواقع نیاز به پشتیبانی و کنترل نسخه نوشته شده دارید. ضمن آن که حتماً سؤالهایی برایتان پیش میآید که پاسخ آن در هیچ منبعی نیست و فقط فرد یا افرادی میتوانند به آن پاسخ دهند که پیش از شما آن مشکل را تجربه کرده باشند. حضور در جامعه برنامهنویسانی که از سراسر دنیا به این کار مشغول هستند و فرصت و حوصله پاسخ دادن به سؤالات و چالشهای یکدیگر را دارند میتواند بسیار جذاب و مفید باشد. گیت هاب یکی از این جوامع است.
گیتهاب چیست؟
گیتهاب یک سرویس مبتنی بر فضای ابری است که به توسعه دهندگان وب کمک میکند تا مخزن(Repository) گیت خود را در آن ذخیره و مدیریت کنند و همچنین تغییرات کد را کنترل کنند.
این سرویس که در سال ۲۰۰۸ توسط تام پرستون و چری پیکرینگ تأسیس شد، به عنوان یک میزبان برای پروژههای نرمافزاری و توسعه نرمافزار استفاده میشود و امکان همکاری و اشتراک گذاری کد بین توسعهدهندگان را فراهم میکند.
آیا تا به حال اصطلاح متنباز(Open Source) را شنیدهاید؟
نرمافزار متن باز، کدی است که توسط توسعهدهندگان ساخته شده است و به صورت رایگان برای دانلود، تغییر و استفاده در پروژههای دیگر در دسترس دیگر کاربران در سراسر جهان قرار گرفته باشد.
گیتهاب، بزرگترین میزبان نرمافزار متن باز در وب است که میتوانید از کدهای موجود در آن استفاده کرده و به بهبود آنها کمک کنید.
همچنین در گیتهاب شما به عنوان توسعه دهنده وب میتوانید پروهای خود را با دیگر افراد به اشتراک بگذارید ، تیم بسازید و به صورت مشترک کار کنید.

گیت چیست؟
گیت یک سیستم کنترل نسخه متنباز است که توسط لینوس توروالدز ابداع شده است. این ابزار به توسعهدهندگان امکان میدهد تا تغییراتی که در کدهای منبع خود ایجاد میکنند را پیگیری و مدیریت کنند. با استفاده از گیت، تیمهای برنامهنویسی میتوانند به صورت همزمان روی پروژه کار کنند، تغییرات را اعمال کرده و بازنگری کنند. گیت از یک سیستم توزیع شده استفاده میکند، به این معنی که هر کاربر کپی کاملی از مخزن کدها را در دستگاه خود دارد و میتواند بدون اتصال به اینترنت روی آن کار کند. این ویژگی باعث میشود که گیت بسیار پراکنده و برای کار با پروژههای بزرگ مناسب باشد.
تفاوت گیت و گیتهاب
گیت و گیت هاب دو اصطلاح مهم در دنیای برنامهنویسی هستند که اغلب به جای یکدیگر استفاده میشوند اما کارکرد متفاوتی دارند.
به عنوان مثال:
- گیت سیستم کنترل نسخهای است که برای مدیریت کدهای پروژه استفاده میشود، اما گیت هاب پلتفرمی است که برای میزبانی و به اشتراکگذاری کدهای پروژه به کار میرود.
- گیت یک سیستم کنترل نسخه متن باز است که برای ذخیره و مدیریت تغییرات کد منبع پروژهها استفاده میشود. این به توسعهدهندگان امکان میدهد تا تاریخچهی کاملی از تغییرات اعمال شده به کد را داشته باشند و در صورت نیاز به نسخههای قدیمی کد بازگردند. اما گیت هاب یک پلتفرم میزبانی کد است که به توسعهدهندگان امکان میدهد تا کدهای خود را به صورت آنلاین مدیریت و به اشتراک بگذارند. این شامل میزبانی مخازن کد عمومی و خصوصی، مدیریت issue ،pull request ، امکان مشارکت در پروژههای دیگر و ابزارهای تیمی است.
- گیت هاب علاوه بر امکانات گیت، ویژگیهای دیگری مانند امکان رفع اشکال کد، ایجاد گزارشهای کارایی و کد و امکانات مدیریتی دیگر را نیز فراهم میکند.
- استفاده از گیت رایگان است، اما برای استفاده از تمامی امکانات گیت هاب باید هزینه مشخصی را پرداخت کنید. این شامل مزایایی مانند میزبانی مخازن خصوصی، امکانات ایمنی و امنیتی بیشتر، ابزارهای مدیریت پروژه و گزارشدهی پیشرفت پروژه میشود.
- برای استفاده از گیت، باید نرمافزار رسمی آن را از وبسایت گیت دانلود کنید. اما برای استفاده و ورود به گیت هاب، باید از طریق وبسایت آن نام نویسی کرده و سپس، شروع به کار کنید.
نحوه استفاده از گیتهاب
- ساخت اکانت گیتهاب
به صورت رایگان میتوانید در گیتهاب حساب کاربری ایجاد کنید.
- نصب گیت
گیت هاب روی گیت اجرا میشود. در گوگل گیت را جستجو کنید و آن را روی سیستم خود نصب کنید.
- ایجاد مخزن یا Repository
در فضای گیتهاب به مخزن repo گفته میشود و این کلمه معادل واژه پروژه است.هر repo در واقع فضایی است که در آن هر چیزی که مربوط به یک پروژه است گرد آوری میشود.
اغلب افراد در repo یک فایل read me قرار میدهند که حاوی همه اطلاعاتی است که برای پروژه به آن نیاز است. به این ترتیب هر فرد جدیدی که به یک پروژه بپیوندد با خواندن این فایل در جریان جزئیات پروژه قرار گرفته و میتواند کار خود را آغاز کند. حال برای ایجاد مخزن باید:
- ابتدا روی گزینه new repository در گوشه سمت راست بالای صفحه گیت هاب خود کلیک کنید.
- سپس برای این مخزن یک اسم انتخاب کنید و برای آن مختصری توضیحات بنویسید.
- در ادامه روی کادری که میگوید «این مخزن را با یک README راهاندازی کنید» تیک بزنید.
- در آخر هم روی گزینه “create repository” کلیک کنید.

- ایجاد شاخه یا Branch
وقتی برای یک پروژه Branch یا شعبه ایجاد میکنید این امکان برای شما فراهم میشود که چندین نسخه منحصر به فرد یک مخزن را به صورت همزمان ویرایش کنید.بهطور پیش فرض هر مخزن دارای یک شاخه به اسم Master است و میتواند چندین زیر شاخه داشته باشد. شما به دلخواه خود میتوانید روی هر شاخه کار کنید. در نهایت این شاخهها به مخزن اصلی متصل و یک پروژه واحد را تشکیل میدهند.برای ایجاد شاخه باید:
- به مخزن جدید خود بروید.
- از منوی کشویی گزینه branch: Master را انتخاب کنید.
- برای شعبه خود یک اسم انتخاب کنید.
- گزینه Create Branch را بزنید.

- ایجاد تغییر روی شاخه
اگر میخواهید روی یک شعبه تغییراتی ایجاد کنید باید:
- روی نماد شعبه ایجاد شده در مخزن خود کلیک کنید.
- وقتی شعبه مورد نظر باز شد هر تغییری را که لازم است روی آن ایجاد کنید.
- روی نماد مداد در قسمت سمت راست بالا کلیک کنید.
- تغییرات خود را با نوشتن یک پیام commit توصیف کنید و سپس روی “commit changes” کلیک کنید. به هر تغییر ایجاد شده یک commit میگویند.
- هرCommit جزئیات مربوط به تغییرات ایجاد شده روی پروژه را اعلام میکند.
- ایجاد Pull Request
گیت هاب از این امکان به منظور اطلاع دادن به طرفهای مربوطه در مورد درخواست الحاق تغییرات در شعبه استفاده میکند.
هر زمان که یک commit کامل شد میتوانید درخواست Pull Request را صادر کنید. برای این که فرد مورد نظر شما در جریان ارائه این درخواست قرار بگیرید باید قبل از نام او یک علامت @ درج کنید. برای این منظور باید:
- به سربرگ Pull Request بروید.
- دکمه new Pull Request را بزنید.
- در کادر example comparisons شاخهای را که ساختهاید پیدا کنید.
- مطمئن شوید تغییرات ایجاد شده همان چیزی است که مدنظرتان بوده است.
- درخواست خود را عنوان کنید و تغییرات را بهطور خلاصه شرح دهید.
- روی گزینه Pull Request کلیک کنید.

- ادغام درخواست Pull Request
ممکن است لازم باشد Pull Request خود را با دیگری ادغام کنید تا دیگران در بخش Master در جریان جزئیات کار و تغییرات آن قرار بگیرند. برای این کار :
- روی گزینه merge pull request کلیک کنید.
- سپس روی گزینه confirm merge را انتخاب کنید.
- شاخهای را که ادغام کردهاید، پس از اینکه در Master قرار داده شد حذف کنید
مزایا و معایب گیتهاب
یادگیری و سرمایهگذاری روی آموزش گیت چندین مزیت را برای توسعهدهندگان و تیمهای درگیر در توسعه نرمافزار ارائه میدهد که از مهمترین این مزایا عبارتاند از:
- کنترل نسخه
- اشتراک گذاری کد
- همکاری
در حالی که GitHub مزایای متعددی را ارائه میدهد، چند معایب بالقوه نیز برای آن وجود دارد که این معایب عبارتاند از:
- منحنی یادگیری
- وابستگی به اتصال اینترنت
- وابستگی به سرویس شخص ثالث
نتیجه گیری
گیتهاب نوعی پلتفرم مبتنی بر وب است که قابلیتهای کنترل نسخه قدرتمند را ارائه میدهد و همکاری در توسعه نرمافزار را تقویت میکند. این پلتفرم به طور گسترده توسط توسعهدهندگان، تیمها، جوامع منبع باز، شرکتها، مؤسسات آموزشی و سازمانهای تحقیقاتی استفاده میشود. گیتهاب اشتراکگذاری کد، مدیریت پروژه، مستندسازی و مشارکت جامعه را تسهیل میکند و آن را به ابزاری ضروری برای توسعهدهندگان برای ساخت، همکاری و نمایش پروژههای نرمافزاری تبدیل خواهد کرد.
نکتهی خوب در مورد گیت و گیتهاب این است که افرادی در آنها فعالیت دارند که تشنهی یادگیری و یاد دادن هستند و از این نقطهنظر، این سرویسها شما را وارد دنیایی نامتناهی از اطلاعات میکنند و روز به روز به دانش کدنویسی شما خواهد افزود زیرا یکی از ابزارهای مهم برای شروع برنامهنویسی، یادگیری ابزارهای کنترل نسخهای مانند گیت است.
