گیت هاب نامی آشنا برای برنامهنویسان و علاقمندان به حوزه فناوری است. اگر تاکنون با این سرویس کار نکردهاید و دوست دارید اطلاعات بیشتری در مورد علت محبوبیت، نحوه کار و کاربرد آن بدست بیاورید، این مقاله برای شماست!
GitHub چیست؟
همانطور که میدانید نرمافزارهای Open Source توسط توسعهدهندگان ساخته شده و به صورت رایگان برای دانلود، تغییر و استفاده در پروژههای دیگر در دسترس دیگر کاربران در سراسر جهان قرار گرفتهاند.
جالب است بدانید که گیت هاب بزرگترین میزبان نرمافزار Open Source در وب است و میتوانید از کدهای موجود در آن استفاده کرده و به بهبود آنها کمک کنید. اگر میخواهید درک بهتری از این سرویس پیدا کنید باید با مفاهیم کنترل نسخه یا Version Control و گیت یا Git آشنا باشید.
پس بهتر است بدون معطلی به سراغ معرفی مفاهیم ذکر شده برویم و سپس نحوه استفاده از گیت هاب را بررسی کنیم.
Git چیست؟
گیت یک سیستم کنترلی است که برای مدیریت و ردیابیِ ویرایش فایلها مورد استفاده قرار میگیرد. این سیستم کنترلی متنباز است و پرکاربردترین سیستم کنترل نسخه در توسعه نرمافزار به شمار میرود.
اگر نام نرمافزارهای کنترل نسخه شما را گیج کرده است باید بگوییم که شما احتمالا پیش از این بارها از این گونه نرمافزارها استفاده کردهاید! به عنوان مثال بعید است نام Google Docs را نشنیده باشید و برای مدیریت فایلهای متنی از این نرمافزار کاربردی استفاده نکرده باشید.
گیت هم در واقع مشابه همین نرمافزار است اما چرا ما به این گونه سرویسها نیاز داریم؟ دلیلش این است که کنترل نسخهی پیشرفته برای پروژههای نرمافزاری، بهخصوص پروژههای مشارکتی ضروری است. توسعهدهندگان در زمان ساخت یک نرمافزار، به صورت مکرر و همزمان کد را برای اضافه کردن ویژگیها و رفع اشکالات موجود بهروز میکنند.
از آنجایی که هر مشکلی میتواند روی کاربران تأثیر بگذارد، ایجاد تغییرات به صورت مستقیم در کد منبع منطقی به نظر نمیرسد. درعوض، توسعهدهندگان روی کپیهایی که از کد تهیه کردهاند کار میکنند و بعد از آزمایش کامل کد، کد مربوطه را به codebase اصلی اضافه میکنند.
به کمک گیت زمانی که توسعهدهنده قصد دارد تغییری در نرمافزار ایجاد کند، میتواند یک نسخه کپی از کد منبع را از محل ذخیرهسازی مرکزی آن در سیستم محلی (Local) خود دانلود کرده و با خیال آسوده اصلاحات را در نسخه کپی خود اعمال کند.
سپس نسخه کپیِ اصلاحشده را به همراه توضیحات پیشنهادی مربوط به تغییرات، با فایلهای منبع موجود در مخزن ادغام کند. Git تمام تغییرات را ردیابی کرده و نسخههای قبلی را بهعنوان پشتیبان ذخیره میکند.
معرفی گیت هاب
اکنون که با مفاهیم کنترل نسخه یا Version Control و گیت یا Git آشنا شدهاید به سراغ اصل مطلب یعنی گیت هاب میرویم. گیت هاب در سادهترین تعریف یک رابط کاربرپسند است!
اگر گیت هاب نباشد؛ برای استفاده از Git نیاز به دانش فنی و تسلط بر خط فرمان دارید اما به کمک این رابط دوست داشتنی کدنویسان مبتدی نیز میتوانند با کمک آن از مزایای Git استفاده کنند. جالب است بدانید که برخی از افراد حتی از GitHub برای مدیریت انواع دیگر پروژه مانند نوشتن کتاب استفاده میکنند.
بیشتر بخوانید:
این سرویس به توسعهدهندگان مختلف اجازه میدهد تا به طور همزمان روی یک پروژه مشخص کار کنند. وقتی چندین برنامهنویس دارید که روی یک فایل کار میکنند، به احتمال بسیار زیاد زمان ادغام مجدد نسخههای مختلف دردسرهایی ایجاد میشود.
اینجاست که گیت هاب وارد عمل شده و چوب جادوی حل مشکل نسخههای متناقض را به کمک سیستم کنترل نسخه خود رو میکند. به وسیله GitHub جلوی انجام کارهای تکراری یا متناقض گرفته شده و زمان تولید نهایی کاهش پیدا میکند. این نوع همکاری میتواند به تولید سطح بالاتری از کنترل کیفیت کمک کند.
بیشتر بخوانید:
شبکه اجتماعی GitHub
آنچه خوبان همه دارند، گیت هاب یکجا دارد! یکی از جالبترین مزایای این سرویس شبکهسازی اجتماعی است در واقع گیت هاب چیزی فراتر از یک محیط برای کار بر روی کدها است.
تمام کاربران پروفایلهایی برای نمایش پروژهها، مشارکتها و فعالیتهای خود در این سایت دارند و میتوانند پروفایلها و مخازن عمومی سایر افراد را نیز مشاهده کنند.
در پروفایل هر کاربر، تعداد دنبالکنندگان آن، فهرستی از مخازنی که به آن دسترسی دارد و حتی دفعات مشارکت آن در دورههای گذشته نمایش داده میشود. از طرف دیگر میتوانند تیمها یا سازمانهایی را تشکیل دهند. مدیران این تیمها میتوانند میزان دسترسی اعضا را کنترل کنند.
اگر نمیدانید مخزن چیست کمی صبور باشید و به ادامه مقاله توجه کنید!
ویژگیهای اصلی گیت هاب
ببینید فرآیند اصلی گیت هاب برای ویرایش و ایجاد تغییر در کدها دارای 4 مرحله اصلی است که به آنها Introduction Sequence میگویند که عبارتند از:
- ایجاد یک مخزن committing
- مدیریت شاخه ها branching
- ارسال درخواست pulling
- ادغام تغییرات merging
در ادامه شما را با این مفاهیم بیشتر آشنا میکنیم:
ایجاد مخازن در گیت هاب
هر کسی میتواند در گیت هاب ثبت نام کند و یک مخزن یا به اختصار repos کد عمومی را به صورت رایگان میزبانی کند. هر مخزن هم معمولاً برای یک پروژه مجزا استفاده میشود.
این مخازن به طور پیش فرض برای عموم در دسترس هستند. اما برای ایجاد تغییرات در پایگاه کد اصلی، اجازه دسترسی و تایید مدیر مخزن مورد نیاز است. البته کاربران میتوانند با هزینه کمی پروژههای خود را خصوصی نگه دارند.
در این صورت، مالک مخزن تعیین میکند که چه کسی میتواند کد را مشاهده یا کپی کند.
ایجاد شاخهها در گیت هاب
شاخه ها یک نسخه موازی (کپی) از پروژه اصلی هستند. زمانی که می خواهید ویژگی های جدیدی را در برنامه خود ایجاد کنید بهتر است از شاخه ها استفاده کنید تا اگر برنامه به مشکلی خورد (به طور مثال کدهای جدید با کدهای قبلی ناسازگاری داشتند) بتوانید بدون زحمت به نسخه قبلی برنامه تان برگردید.
به خاطر داشته باشید که شاخه ها history یا تاریخچه مستقل خودشان را دارند و تغییر در یک شاخه روی شاخه های دیگر اثری نخواهد داشت.
ارسال درخواست یا pulling
در ساده ترین شکل، درخواست pull مکانیسمی برای توسعه دهنده است که سایر اعضای تیم را از پیاده سازی یک قابلیت آگاه کند. پس از اینکه شاخه feature آماده شد توسعه دهنده یک درخواست pull ثبت می کند. این کار باعث می شود تمام افرادی که درگیر پروژه هستند متوجه شوند که باید کد های جدید را بررسی کنند و آن را در شاخه main ادغام کنند.
ادغام تغییرات یا merging
دستور git merge چندین commit را به یک تاریخچه ی واحد متصل می کند. بیشتر وقت ها دستور git merge برای ترکیب دو شاخه استفاده می شود. فکر کنید ما یک شاخه ی feature جدید داریم که مرجع آن شاخه main است. ما اکنون می خواهیم این شاخه ی feature را به شاخه ی main ادغام کنیم.
اجرای git merge شاخه ی feature مشخص شده را به شاخه ی فعلی ادغام می کند که در مثال ما شاخه ی main خواهد بود. گیت الگوریتم ادغام را به صورت خودکار تعیین می کند.
سخن پایانی
تا این جا با گیت هاب و مزایای آن آشنا شدید و در مقالات آینده نحوه استفاده از این سرویس را به شما میآموزیم. وبلاگ هاستیدا را دنبال کنید تا بیشتر با این جهان متن باز شگفت انگیز آشنا شوید.