GitHub چیست؟ یک آموزش جامع برای مبتدیان

به عنوان یک توسعه دهنده وب یا برنامه نویس مشتاق، ممکن است قبلاً با GitHub به عنوان برنامه ای که می توانید از آن برای ذخیره کد خود در وب استفاده کنید، آشنا باشید.

اما قابلیت های گیت هاب بیشتر از این است. حال ببینیم، GitHub چیست؟

اساسا گیت هاب، ابزاری است که توسط توسعه دهندگان به صورت تیمی یا فردی در سراسر جهان برای همکاری با یکدیگر، تقریباً در هر نوع پروژه ای که قابل تصور است استفاده می شود.

GitHub از یک نرم‌افزار کنترل نسخه استفاده می‌کند به نام «Git» (در ادامه این مقاله در مورد آن بیشتر توضیح می‌دهیم) که می‌توانید آن را دانلود کرده و در دستگاه توسعه محلی خود (کامپیوتر یا لپ تاب شخصی) استفاده کنید. Git یک نرم افزار مجزا از GitHub است و این مقاله فرض می کند که شما تا حدودی با مفهوم Git آشنا هستید. اگر نه، مقاله موجود در بلاگ برای توضیح Git را مطالعه کنید.

Github دارای ویژگی های منحصر به فرد بسیاری است که این روزها آن را بسیار محبوب کرده است. علاوه بر فضای ذخیره سازی ساده، گیت هاب یک اکوسیستم کامل با جنبه شبکه های اجتماعی پیچیده است که به توسعه دهندگان اجازه می دهد به صورت فردی یا در تیم ها و پروژه های متعدد مشارکت کنند. هنگامی که وارد جریان مدیریت مخازن با استفاده از GitHub شوید، ایده ای در مورد اینکه چقدر می تواند مفید باشد به دست خواهید آورد.

در این مقاله، من به شما نشان خواهم داد که GitHub چیست و نکات مفیدی در مورد نحوه استفاده از GitHub ارائه خواهم کرد. این مقاله به بخش های زیر تقسیم خواهد شد:

  1. کنترل نسخه چیست؟
  2. توضیح مختصری درباره  Git
  3. GitHub چیست: توابع و ویژگی های اصلی
  4. سخنان پایانی درباره گیت هاب

1. کنترل نسخه چیست؟

کنترل نسخه، همانطور که از نام آن پیداست، راهی برای مدیریت نسخه های مختلف کد پایه شما است.

در اینجا در ابتدا یک معرفی سریع از سیستم کنترل نسخه (Version Control System) انجام می‌دهیم. ابتدا، اجازه دهید با پرسیدن این سوال شروع کنیم: “چرا نسخه‌های متفاوتی از یک کد دارید؟”

به زمانی که در حال انجام یک بازی ویدیویی هستید فکر کنید. شما در شرف ورود به سیاه چال سختی هستید که تا زمانی که رئیس را شکست ندهید نمی توانید از آن فرار کنید. قبل از ورود به سیاهچال، می‌خواهید بازی خود را ذخیره کنید، تا در صورتی که شکست دادن رئیس خیلی سخت باشد و یا برای همیشه در سیاهچال گیر کرده باشید، نسخه ای از بازی تا قبل از ورود به سیاه چال داشته باشید. اگر به نظر می رسد که رئیس خیلی سخت است، تنها کاری که باید انجام دهید این است که نسخه بازی خود را در جایی که خارج از سیاهچال بودید بارگذاری کنید و می توانید ادامه دهید و سطح خود را بالا ببرید.

با این حال، هنگامی که وارد سیاهچال می شوید و شروع به پیشرفت می کنید، می خواهید بازی خود را در طول مسیر ذخیره کنید، اما نمی خواهید بازی اصلی را که در خارج از سیاهچال ذخیره کرده اید، بازنویسی کنید. بنابراین وقتی بازی خود را از داخل سیاهچال ذخیره می کنید، یک شاخه کاملاً جدید، در اصل یک کپی از بازی اصلی خود ایجاد می کنید.

اگر با موفقیت از سیاهچال عبور کنید، نسخه ذخیره شده فعلی شما تبدیل به نسخه اصلی جدید شما می شود و در طول بازی به کار خود ادامه می دهید. این بسیار شبیه به کنترل نسخه با Git و GitHub است.

ابزاری حیاتی برای تیم های توسعه دهندگان

فرض کنید برنامه‌ای دارید که با یک تیم روی آن کار می‌کنید، و وظیفه دارید یک ویژگی خاص به آن اضافه کنید.

به جای ساختن ویژگی در شاخه اصلی (که به طور بالقوه می تواند کل برنامه را در صورت خطای احتمالی هنگام ایجاد ویژگی، خراب کند)، یک “کپی” از برنامه ایجاد می کنید و شروع به ساخت ویژگی روی آن کپی می کنید.

وقتی توسعه این ویژگی را تمام کردید، از هم تیمی های خود می خواهید که کد شما را بررسی کنند. اگر «تائیدیه» را از آن‌ها دریافت کردید، می‌توانید با خیال راحت شاخه ویژگی خاص خود را به شاخه اصلی «ادغام» کنید.

وقتی چندین برنامه نویس دارید که روی یک برنامه کار می کنند، گاهی اوقات چندین توسعه دهنده دقیقاً روی یک فایل کار می کنند. این می تواند هنگام ادغام مجدد فایل ها با یکدیگر مشکلاتی ایجاد کند، زیرا مشخص نیست که کدام نسخه از فایل ها درست است. وقتی این اتفاق می افتد (و متأسفانه اتفاق می افتد)، یک سیستم کنترل نسخه خوب کمک می کند تا راه حل نسبتاً بدون دشواری زیاد باشد.

این روشی است که Git و GitHub برای کنترل نسخه به کار می برند. گیت و گیت هاب به گونه ای عمل می کنند که چندین نفر بتوانند روی چندین فایل و چندین ویژگی در یک برنامه کار کنند و از مشکلات عمده به دلیل کد متناقض یا نسخه های مختلف در ماشین محلی هر توسعه دهنده جلوگیری کنند.

2. توضیح مختصری درباره Git

قبل از اینکه به GitHub بپردازیم، مهم است که اطلاعاتی درباره Git داشته باشیم. در اصل،Git  یک نرم افزار کنترل نسخه است که می توانید آن را دانلود کرده و روی کامپیوتر یا لپ تاب خود استفاده کنید.

شما از آن برای گرفتن یک نسخه کپی یا اسنپ شات (“commit”) از ساختار فایل های خود استفاده می کنید، زمانی که پس از تغییراتی، از دخیره پروژه و فایل های خود مطمئن هستید (به عنوان مثال، پس از ساخت یک ویژگی جدید، پس از رفع اشکال، پس از افزودن نرم افزار شخص ثالث، و غیره).

می‌توانید از Git برای ایجاد شاخه‌ها (همانطور که در بالا توضیح داده شد) و رفع تضادها با نسخه‌های مختلف فایل‌ها استفاده کنید، و نهایتا با GitHub ادغام کنید تا اسنپ شات (commit) شما برای تیم شما (یا به صورت عمومی) برای دیدن نمایش داده شوند.

این کار معمولاً از طریق خط فرمان انجام می شود، یا می توانید آن را از طریق یک رابط کاربری گرافیکی (یا به اختصار “GUI”) انجام دهید. با این حال، انتظار می رود که بتوانید Git را در خط فرمان اجرا کنید، بنابراین اگر علاقه مند به افزودن این ابزار ضروری به مجموعه مهارت خود هستید، باید دوره آموزش کامل git را بگذرانید!

3. GitHub چیست: قابلیت ها و ویژگی های اصلی

بنابراین، اکنون که کنترل نسخه و Git را بررسی کردیم، GitHub  چیست؟

گیت هاب یک عنصر کلیدی برای عملکرد یک توسعه دهنده وب است. می‌توانید از گیت هاب به سادگی به عنوان فضای ابری رایگان برای پروژه‌های خود استفاده کنید، یا می‌توانید از آن برای نشان دادن کد خود به کارفرمایان بالقوه‌ای که علاقه‌مند به ارزیابی مهارت‌های کدنویسی شما هستند، استفاده کنید.

همانطور که می بینید، گیت هاب بسیار بیشتر از یک مکان برای ذخیره کد در فضای ابری است. گیت هاب ابزاری است که توسط تیم های محلی و توزیع شده که در پروژه ها همکاری می کنند استفاده می شود. به خاطر داشته باشید، پروژه ها لزوما محدود به نرم افزار نیستند!

مخازن

مخازن یا به اختصار (“repos”) می تواند توسط هر کسی ایجاد شود. یک مخزن واحد معمولاً برای یک پروژه واحد استفاده می شود.

مخازن GitHub به طور پیش فرض برای عموم باز هستند. اگر کاربران نمی خواهند که عموم مردم بتوانند به مخازن آنها دسترسی داشته باشند، می توانند پروژه های خود را با هزینه اندکی خصوصی نگه دارند. در این حالت، مالک مخزن کنترل دارد که چه کسی می تواند کد را مشاهده یا کپی کند.

از طرف دیگر، مخازن عمومی توسط هر کسی قابل مشاهده و کپی است. با این حال، برای اینکه شخصی بتواند در پایگاه کد اصلی تغییراتی ایجاد کند، ابتدا مدیر مخزن باید آن را تأیید کند.

بنابراین نگران نباشید، هیچ کس نمی تواند پروژه های مخزن شما را تغییر دهد مگر اینکه به آنها مجوز خاصی بدهید!

شاخه ها

هنگامی که شخصی می خواهد تغییراتی در مخزن GitHub ایجاد کند، آن شخص (معمولاً یکی از اعضای تیم) یک “شاخه” جداگانه ایجاد می کند.

این شاخه به سادگی یک کپی از نسخه فعلی است – خوب، در واقع یک کپی نیست – روش Git برای ذخیره فایل ها کارآمدتر از آن است، اما می توانیم آن را به عنوان یک کپی در نظر بگیریم. در اکثر موارد نسخه فعلی به عنوان “شاخه اصلی” نامیده می شود.

توسعه دهنده تا زمانی که ویژگی کامل شود، روی این ویژگی در این شاخه جدید کار خواهد کرد. در آن زمان، توسعه دهنده کد را در شاخه جدید “commit” (ذخیره فوری) می کند و سپس یک “درخواست کشش” یا “pull request” ایجاد می کند. این اساساً به بقیه تیم اجازه می‌دهد بدانند که این ویژگی به پایان رسیده و آماده بررسی کد و در نهایت، ادغام در شاخه اصلی است.

اعضای تیم می‌توانند کد جدید را بررسی کنند (یک راه خوب دیگر برای اطمینان از کیفیت خوب کد) و سپس مدیر می‌تواند ادغام را تأیید کند. سپس کد در شاخه اصلی ادغام می شود و شاخه ویژگی را می توان حذف کرد. این ها همه با استفاده از GitHub انجام می شود!

شبکه اجتماعی GitHub

از آنجایی که GitHub ذاتاً بسیار مشارکتی است، نباید تعجب آور باشد که یکی دیگر از ویژگی های اصلی آن جنبه شبکه اجتماعی مهم آن است.

کاربران می‌توانند عکس‌ها و بیوگرافی‌ها را آپلود کنند، می‌توانند کاربران دیگر را دنبال کنند و پروژه‌های آن‌ها را «مورد علاقه» قرار دهند، و البته تیم‌ها یا «سازمان‌هایی» تشکیل دهند که رهبران آن‌ها می‌توانند کنترل بسیار خاصی بر دسترسی اعضای فردی که در یک پروژه همکاری می‌کنند اعمال کنند.

تصویر فوق، نمونه‌ای از «صفحه اصلی» یک کاربر است. فهرستی از مخازن و تعداد دنبال‌کنندگان / کاربرانی که دنبال می‌شوند وجود دارد. در پایین حتی تعداد و دفعات مشارکت در سال گذشته به مخازنی که کاربر به آنها دسترسی دارد نمایش داده می شود.

این بسیار شبیه صفحه اصلی سایر شبکه های اجتماعی است، به جز اینکه برای کدنویسی است!

4. سخنان پایانی درباره گیت هاب

خوب، حالا شما می دانید: مقدمه ای ابتدایی که GitHub چیست.

چه به تنهایی روی پروژه های شخصی کار کنید و چه بخشی از تیمی هستید که بر روی نرم افزارهای بزرگ سازمانی کار می کند، GitHub  یک ابزار مفید است. اگر تنها هستید، می توانید از آن برای ذخیره کد خود و نشان دادن کارهایتان به دیگران، استفاده کنید.

می‌توانید از آن برای الهام گرفتن از پروژه‌های دیگران استفاده کنید و حتی پروژه‌هایی را که ممکن است دوست داشته باشید گسترش دهید و یا در آن مشارکت کنید، یا شروع به ساختن پروژه خود کنید، از ادامه پروژه های موجود کنید.

گیت هاب، در تیم‌ها، نه تنها به ساده‌سازی پیچیدگی چند توسعه‌دهنده که روی چندین فایل به طور همزمان کار می‌کنند، کمک می‌کند، بلکه به همکاری نیز کمک می‌کند، توسط کاهش تضادها و بهبود کیفیت کد.

بسیاری از شرکت ها به دلایل زیادی از GitHub استفاده می کنند، بنابراین آشنایی با آن کاملا ضروری است. بنابراین علاوه بر اینکه پرسیدن ” GitHubچیست؟” از دیگران، شما را از شرمساری نجات نمی‌دهد، آموختن گیت و گیت هاب، مهارت بسیار مطلوبی است که نیازمندید تا به مجموعه مهارت‌های برنامه نویسی و توسعه‌دهنده وب خود اضافه کنید!

 

ترجمه: ابوالفضل محمدی جو
منبع:

https://careerfoundry.com/en/blog/web-development/what-is-github

این مقاله را در شبکه های اجتماعی خود به اشتراک بگذارید.

دیدگاه‌ خود را بنویسید

پیمایش به بالا