معرفی گیت (Git) به زبان ساده

حتما شما هم با نرم‌افزارهایی مثل آفیس یا فتوشاپ کار کرده‌این. توی این محیط‌ها ما یه سری تغییراتی رو در فایل‌ها ایجاد می‌کنیم و اونا رو ذخیره می‌کنیم. در هنگام کار با این ابزارها گاهی اوقات یه اشتباهی رو انجام میدیم. و مجبور میشیم که به مراحل قبل برگردیم. که اغلب با گزینه Undo یا کلید میانبر Ctrl+z این کار رو انجام میدیم. و به هر تعداد مجاز می‌تونیم به مراحل قبل بازگردیم. تصور کنید که شما یه کاری در مقیاس بزرگتری مثل برنامه‌نویسی یه پروژه رو دارین انجام میدین. و شاید بعد از مدت‌ها کار و ایجاد تغییرات روی کدهاتون، متوجه بشین که باید برگردین به تغییرات اولیه. اینجاست که دردسر شما شروع میشه. و شاید مجبور بشین یه تغییر اساسی در محتویات‌تون بدین. در این‌جور مواقع هستش که باید دست به دامن گیت (Git) شد و از اون کمک گرفت. در این مقاله قصد داریم تا به معرفی اجمالی گیت بپردازیم.

گیت (Git) چیست

گیت یه سیستم کنترل نسخه هستش که اغلب برنامه‌نویسان از اون استفاده می‌کنند. و پروژه‌های خودشون رو با اون گسترش میدن. با استفاده از گیت ما می‌تونیم ما تاریخچه‌ای از تغییرات فایل‌ها رو به همراه جزییات‌شون داشته باشیم. همچنین با استفاده از اون می‌تونیم مدیریت بهتری روی نسخه‌های برنامه‌ها یا پروژه‌هامون داشته باشیم.

چگونگی پیدایش git

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

قابلیت‌های git

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

ذخیره‌سازی تاریخچه تغییرات

با استفاده از گیت می‌تونیم از همون ابتدای کارمون مثلا یه سری تغییراتی رو انجام بدیم. و بعد از قطعی شدن، اونا رو اصطلاحا commit کنیم. بدین معنی که اون تغییرات رو توی مخزن گیت ذخیره کنیم. توجه کنید که در اینجا تغییرات با جزییات بیشتری ذخیره میشن و مثل برنامه‌هایی آفیس یا فتوشاپ نیستند که فقط با استفاده از میانبر ctrl+z بتونیم به تاریخچه از تغییرات فعلی دسترسی داشته باشیم. در اینجا ما جزییات دقیق‌تری از جمله تاریخ اعمال تغییرات، موضوع، توسعه‌دهنده و… ذخیره میشند و تا مدت‌ها تاریخچه و لیست‌ اینا باقی میمونه.

امکان بازگشت به مراحل قبل

تصور کنید که شما برای یه مدتی دارین روی یه پروژه کار می‌کنید و ناگهان متوجه میشین که این راه رو اشتباه اومدین. و مجبورین یه تغییر اساسی بدین و مثلا به گام‌های قبلی مراجعه کنید. با استفاده از گیت این کار به راحتی برای ما امکان‌پذیره. و می‌تونیم به هر مرحله که خواستیم دسترسی داشته باشیم و دوباره پروژه رو از همون جا ادامه بدیم.

امکان افزودن شاخه جدید

تصور کنید که در میان پروژه‌تون به یه دو راهی بر میخورین. و مثلا قصد دارین یه ایده و یا ویژگی جدیدی رو به پروژه‌تون اضافه کنید. در اینجا می‌تونید یه شاخه جدیدی رو ایجاد کنید. و در اون شاخه تغییرات خودتون رو اعمال کنید و جلو برین و در پایان اون شاخه جدید رو با شاخه اصلی ادغام کنید.

چگونه از git استفاده کنیم؟

برای این منظور شما باید به سایت مرجع گیت یعنی git-scm.com مراجعه کنید. تو این سایت مستندات گیت و لینک دانلود گیت برای سیستم عامل‌های مختلف وجود داره. ابزار گیت در واقع یه نوع محیط خط فرمان هستش مثل command line. که شما با توجه به سیستم عامل‌تون باید اونو روی کامپیوترتون نصب کنید. یادگیری گیت هم آسونه و با دونستن چند تا دستور اصلی می‌تونید اونو یاد بگیرین و پروژه‌هاتون رو توسعه بدین.

کار گروهی در گیت

از قدیم گفته‌اند که کار گروهی بهتر از کار انفرادی هستش. چرا که در این صورت ایده‌های بیشتر مطرح میشند و سرعت توسعه پروژه افزایش یپدا می‌کنه. مهندسان و توسعه‌دهندگان نرم‌افزار هم از این قاعده مستثنی نیستند. و اگه دقت کنید تقریبا بیشتر پروژه‌های نرم‌افزاری بزرگ توسط گروه‌های نرم‌افزاری توسعه داده شده. و کمتر نمونه‌ی انفرادی پیدا میشه. در اینجا هستش که گیت به کمک توسعه‌دهندگان و برنامه‌نویسان میاد اما چه جوری؟

با استفاده از سرویس‌هایی مثل Github یا Gitlab شما این امکان رو دارین که محتویات فایل‌ها و مخزن گیت رو بر بستر اینترنت منتشر کنید. البته سرویس‌هایی دیگه‌ای هم موجودند اما این دو سرویس از محبوبیت بالاتری برخودارند.

تفاوت Github و Git

در واقع میشه گفت که Git یه ابزار هستش که وظیفه کنترل و مدیریت نسخه رو بر عهده داره. اما گیت هاب یا سرویس‌های مشابه اون مثل گیت لب یه فضای میزبان مبتنی بر گیت هستند. در این صورت به جای اینکه محتویات شما تنها از طریق کامپیوتر خودتون در دسترس باشه در بستر اینترنت هم موجوده و امکان کار گروهی هم وجود داره.

چگونگی کار با Github و Gitlab

در اینجا نمی‌خوام توضیحات دقیقی از چگونگی کار با این دو سرویس بدم. بلکه میخوام یه روال کلی از کار با اونا رو توضیح بدم. می‌تونم بگم که این دو سرویس تفاوت چندانی ندارند. و بعضا برخی از امکانات اونا رایگان و یا پولی هستش. 
در ابتدا شما باید یه اکانت جدیدی در این سرویس‌ها ایجاد کنید. پس از اون می‌تونید پروژه‌های مختلفی رو ایجاد کنید که معمولا به دو صورت هستند: public و private

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

شما در این سرویس‌ها یه سری مخزن‌هایی رو ایجاد می‌کنید. و فایل‌ها و محتویات خودتون رو در اون‌ها آپلود می‌کنید. و از هر جای دنیا که باشید می‌تونید به این فایل‌ها دسترسی داشته باشید. 
شما و افراد تیم‌تون می‌تونید یه نسخه‌ای از مخزن گیت پروژه‌تون رو توی کامپیوترهاتون داشته باشید و با استفاده از ابزار git به طور موازی روی پروژه کار کنید و در نهایت تغییرات رو به سرویس github یا gitlab آپلود کنید تا بقیه افراد هم بتونند از آخرین تغییرات شما مطلع و همگام بشند. و اینجوری شما می‌تونید پروژه خودتون رو گسترش بدین.

جمع‌بندی

یکی از مهم‌ترین مهارت‌های هر برنامه‌نویس، مهارت کار گروهی هستش. در این مقاله ابزار git رو معرفی کردیم. که با استفاده از اون می‌تونیم تاریخچه‌ای از تغییرات محتویات رو داشته باشیم. و به راحتی اونا رو مدیریت کنیم. همچنین با سرویس‌هایی مثل gitlab و github آشنا شدیم .که می‌تونیم در بستر اونا، پروژه‌های گروهی خودمون رو توسعه بدیم. امیدوارم که از مطالب این مقاله لذت برده باشین.


منبع: وبسایت شخصی محمدحسین میثاق‌پور - معرفی گیت (Git) به زبان ساده