پیشتر در یادداشتی حسابی از معنا و کارکرد گیت هاب پرده برداشتیم و حالا نوبت آن است که یک قدم پیشتر برداریم و ببینیم نحوه استفاده از گیت هاب چیست و چگونه کار میکند. با وجود این اما هنوز بد نیست که یک بار دیگر همهچیز را از نو مرور کنیم: گیت هاب چیست و به چه درد میخورد؟!
گیت هاب در واقع یک شبکه اجتماعی برای برنامهنویسان است که امروز بیش از 56 میلیون کاربر را میزبانی میکند و به مثابه یکی از بزرگترین منابع کد در جهان، 100 میلیون انبار(مخزن) دارد! مثال پایین شاید بتواند تصویری از نحوه استفاده از گیت هاب به دست دهد. پرسش اما اینجاست که چرا گیت هاب ناگهان سری توی سرها در آورد و به چشم برهم زدنی تبدیل به یکی از ابزارهای مهم برای استفاده در عملیاتهای توسعهی نرمافزار قرار گرفت؟
تصور کنید اعضای یک تیم برنامهنویس میخواهند همزمان روی یک برنامه مشترک کار کنند. طبیعی است که همهی آنها میبایست در حین کار کدهای خود را به روز رسانی کنند پس از گیت هاب کمک میگیرند تا یک انبار بسازند و کلید آن انبار را بین یکدیگر تخس کنند. اینگونه همه با هم به آن انبار دسترسی دارند و میتوانند به مدیریت و ویرایش کدها بپردازند.
اما آیا گیت همان گیت هاب است؟ اگر نیست پس چه فرقی با هم دارند و چرا معمولا همهجا کنار یکدیگر میآیند و مطرح میشوند؟!
گیتهاب که دستپخت لینوس توروالدز، بنیانگذار لینوکس، است در سال 2005 میلادی، صنعت برنامهنویسی را تکان داد و بستری فراهم آورد تا برنامهنویسان به واسطهی آن با سازماندهی بیشتر، بازدهی چشمگیرتری ارائه دهند. در حقیقت گیت هاب، وبسایتی شد که به واسطهی آن میتوان انبارمرکزی را ازیک سرور دور میزبانی کرد و ورژنها را به کنترل در آورد. قصهی گیت اما از گیت هاب جداست! گیت به واقع ابزاری برای کنترل ورژنها به شمار میرود و امکان انواع عملیات را بر روی دادهها از سرور مرکزی را مهیا میسازد. پس همواره در نحوه استفاده از گیت هاب به خاطر داشته باشید که این سرویس با آنچه با نام گیت میشناسیم، یکی نیست و تفاوتهای ماهوی دارد.
همچنین بخوانید: شبکه اجتماعی تیک تاک (TikTok) چیست؟
اما انبار یا همان مخزن چهجور چیزی است؟! انبار (Repository) چیزی جز یک آدرس URL در گیت هاب نیست و آنگونه که از مثال بالا نیز پیداست، در این آدرس یک پروژهی بزرگ قابلیت ذخیره شدن دارد و از این طریق سرپرست تیم برنامهنویسی علاوه بر مدیریت پروژه به دیگر اعضای تیم اجازه میدهد، در صورت لزوم در کدها دست ببرند و آنها را ویراسته و پیراسته کنند. در نتیجه کارکرد و نحوه استفاده از گیت هاب در پروژههای مربوط به حیطهی توسعهی نرمافزار تا اندازهای روشن است.
در ادامه خواهیم آورد که هر یک از مفاهیم مورد استفاده در گیت هاب چه هستند و به چه کار میآیند و چگونه میتوان از آنها در نحوه استفاده از گیت هاب سود جُست!
درست در بخش پیشین از این مفهوم پرده برداشتیم؛ آنجا به تفصیل توضیح دادیم که Repository ، همان انبار و یا مخزن است و همواره به صورت یک URL در دسترس قرار میگیرد. اگر وارد گیت هاب شدید حتما با این واژه برخورد خواهید کرد. در گیت هاب Repository را به اختصار Repo هم میگویند؛ جایی که همهی فایلها را جهت مدیریت پروژه در خود ذخیره نگه میدارد.
لغت Fork یکی دیگر از اصطلاحات رایج در نحوه استفاده از گیت هاب است که در فارسی آن را شعبه و یا شاخه نیز ترجمه میکنیم. هنگامی که پروژهای ثانوی را زیر عنوان پروژهی اولیه در گیت هاب تعریف مینمایید، در حقیقت شما یک شاخه جدید ساختهاید و یا Forking کردهاید.
با امکان Fork شما میتوانید از پروژه اولیه یک انبار دریافت کنید و بعد، با اعمال تغییراتی هر چند اندک، از آن یک انبار و یا پروژهی ثانویه دست و پا کنید. در واقع Branch نیز به همین ترتیب عمل میکند؛ با این تفاوت که شما در Forking اگر تغییری در پروژهی اولیه اعمال کنید، به صورت خودکار، در پروژهی ثانوی نیز اعمال میشود اما در Branch، اگر تغییری در پروژه ثانویه حاصل شود، آن تغییرات در پروژهی اولیه به وجود نمیآید، مگر آنکه بخواهید این تغییرات را با امکان Pull request در پروژه اولیه ادغام نمایید.
همانطور که در توضیح Fork اشاره کردیم، Pull request در حقیقت همان در خواست ادغام و یا یکپارچگی است. هنگامی که شما در پروژهی ثانوی تغییراتی را اعمال کردید میتوانید با استفاده از این امکان از مدیر پروژهی اولیه بخواهید که تغییرات را در پروژهی اولیه نیز ادغام کند.
در نحوه استفاده از گیت هاب به هر تغییر در پروژه Commit میگویند. هر Commit در برگیرندهی توصیفاتی درباره چرایی و چگونگی تغییر است!
همچنین بخوانید: آموزش استفاده از لینکدین
گفته شد که نحوه استفاده از گیت هاب، عمدتا به صورت تیمی و توسط مجموعهای از برنامهنویسان معنا مییابد. بسیار امکان دارد که در یک پروژه شما روحتان نیز از آخرین تغییرات خبر نداشته باشد و اعمال دیگر همکارانتان ناآگاه باشید. در نتیجه پیشینهی تغییر، امکانی که توسط گیت هاب عرضه میشود، به شما کمک میکند که از محل آخرین فایلهای ذخیره شده، آخرین نفر که تغییراتی به وجود آورده و همینطور زمان آن تغییرات مطلع شوید.
یکی از جذابترین امکانات در نحوه استفاده از گیت هاب، کارکرد آن به مثابه یک شبکهی اجتماعی است. به این ترتیب شما میتوانید یک پروفایل از آنِ خود داشته باشید و رزومهتان را در معرض نمایش بگذارید.
سخت نیست! پیشتر نیز از در تعریف سرویس گیت هاب مثالی آوردیم که کم یا بیش نحوه عملکردش را شرح و بسط میداد. آنجا گفتیم که گیت هاب به مثابه یک سرویس میتواند پروژهی تیمی شما را سازماندهی کند. حال بگذارید آن مثال کمی بازتر کنیم تا تصویر دقیقتری، اینبار از نحوه استفاده از گیت هاب ، به دست دهیم.
فرض بگیرید تیم پنج نفرهی برنامهنویس ما که در تلاش برای طراحی یک نرمافزار نوین حسابداری هستند، به دلیل شیوع یک ویروس همهگیر چارهای ندارند جز آنکه جدا از یکدیگر، هر یک در خانه پروژه را پیش ببرند. در این حین یک کاربر در سایت گیت هاب یک اشکال و یا همان باگ را به تیم نرمافزار اطلاع میدهد. در حقیقت کاربر یک Issue در گیت هاب ایجاد میکند و گزارش میدهد.
شخص الف از تیم برنامهنویس، متوجه اشکال میشود و شخص ب را مامور میکند تا به مشکل رسیدگی نماید. در نتیجه او را به issueیی که پیشتر توسط کاربر آن نرمافزار ایجاد شده است، دعوت میکند.
شخصِ ب کارش را با ایجاد یک Branch میآغازد و تغییراتی را بر روی آن اعمال مینماید. توجه داشته باشید که این تغییرات همزمان در بخش پیشینهی تغییر در حال ذخیرهسازی است. کار تغییرات که به اتمام رسید، شخص ب، به واسطهی Pull request درخواست میدهد که تغییراتش در پروژهی اولیه ادغام شود.
حالا در نحوه استفاده از گیت هاب، پای باقی اعضای تیم برنامهنویس به میان میآید؛ الف، پ، ت، ث! آنها کار شخص ب را نگاه میکنند و البته نظراتشان را بر روی نسخه ایجاد مینمایند. پس از پایان تغییرات و تایید تیم بر همهی اصلاحات انجام گرفته شخص ب پروژه ثانوی را بر پروژه اولیه ادغام میکند و آن را در اختیار همه قرار میدهد.
بله! گیت هاب یکی از محبوبترین سرویسهای مدیریت پروژه برای برنامهنویسان به شمار میآید اما با وجود این کارکرد گیت هاب تنها در پروژههای برنامهنویسی خلاصه نمیشود. کافی است شما پروژهای تیمی را آغاز کنید؛ هر پروژهای. گیت هاب میتواند به شما در اصلاح و بهبود پروژه بهتان کمک کند. پس بد نیست سری به وبسایت گیت هاب بزنید و با حال و هوایش آشنا شوید. شاید به کارتان آمد.