آشنایی با گیت (Git)

گیت، یک سیستم کنترل نسخه(Version Control) یا کنترل ورژن است. سیستم های کنترل نسخه(کنترل ورژن)، در برنامه نویسی و مهندسی نرم افزار کاربردهای فراوانی دارند.

برای مثال، فرض کنید یک برنامه نویس هستید و در حال نوشتن یک وب سایت می باشید. شما کد نویسی وب سایت را انجام میدهید و سایت را آماده تحویل میکنید. در این جا، یک نسخه از وب سایت خود را در سیستم Version Control ذخیره کرده(نام این نسخه را “نسخه شماره ۱” میگذارید) و کار برنامه نویسی وب سایت را ادامه می دهید.

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

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

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

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

گیت(Git)، در مقایسه با Subversion یا سیستم های کنترل ورژن دیگر، به نظر کامل تر و به روز تر می رسد. در این سیستم(به دلیل توزیع شدگی)، Single Point Of Failure وجود ندارد. به این معنی که، یک کپی کامل(شامل تمامی نسخه های یک پروژه)، بر روی سیستم هر کدام از برنامه نویس ها، ذخیره شده، و در صورت خرابی سرور، خللی در کار برنامه نویس ها و مهندسان نرم افزار ایجاد نمیکند.

بازگشت به قسمتی از کدها با استفاده از گیت

فرض کنید که شما دارید یک سایت می سازید و شروع به نوشتن کد می کنید. مثلا هدر وب سایت رو می سازید و ذخیره می کنید.ساید بار وب سایت رو هم می سازید و ذخیره می کنید. بعد از ساخت بدنه وب سایت متوجه می شید که اشتباهی رو در هدر وب سایت انجام داده اید و می خواهید کاملا برگردید به زمانی که هدر رو کامل کرده بودید. این کار با یک دستور در گیت امکان پذیر است.

دیدن تغییرات کد ها با استفاده از گیت
فرض کنید شما یک نرم افزار اتوماسیون تحت وب رو ساختید. میخواید که یک قابلیت جدید مثل لیست کردن کارمندان رو در اون پیاده سازی کنید. برای این کار از دوستتون کمک میگیرید. نرم افزار رو به دوست یا همکارتون میدید و از اون میخواید که این کار رو برای شما انجام بده . خوب بعد از اتمام کار نرم افزار تکمیل شده رو دوستتون به شما تحویل میده .
خوب خیلی جالب میشه که شما بدونید که دوست شما کجاهای کد شما رو تغییر داده. این کار با گیت به راحتی امکان پذیره . یعنی شما می تونید به صورت ریز و با جزئیات کامل تغییرات دوستتون توی کد نرم افزارتون رو ببینید.
ورژن بندی کد ها با استفاده از گیت
فرض کنید شما در حال توسعه یک نرم افزار موبایل هستید. نرم افزار شما تا حدودی حاضره و از نظر شما نسخه یک نرم افزار تکمیل شده (مثلا نسخه 1) . در آینده امکانات جدیدی به نرم افزارتون اضافه می کنید و نسخه تکمیل ترش رو میتونید با نسخه جدیدتری ثبت کنید (مثلا نسخه 1.2).که این کار هم با گیت به راحتی امکان پذیره.

ثبت توضیحات برای قسمتی از کدها با گیت

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