کنترل نسخه روشهایی برای ثبت تغییرات کدها و نوشته هایمان است، با این امکان که هرگاه بنا برنیازمان به مرحله ی خاصی از تغییرات ثبت شده برویم.
روش ها و همچنین ابزارهای زیادی برای این کار معرفی شده اند و git یکی ازین ابزارهاست که توسط یکی از بهترین برنامه نویسان یعنی لینوس توروالدز خالق لینوکس برای برنامه نویسان ساخته شده.
در سرتاسر اینترنت میتوانید داستان های زیادی از دلیل و تاریخچه ی ایجاد گیت بخوانید اما در این نوشتار تنها نگاهی کوتاه و کاربردی به موضوع دارد.
اگر تا بحال تجربه ای هرچند کوتاه در برنامه نویسی داشته باشید احتمالا تجربه ی از دست دادن بخشی از پروژه ی از پروژه را به دلایل گوناگون مثل ذخیره ی ناخواسته در هنگام قطعی برق یا تغییراتی که بعدا باعث بروز مشکل شده اند و دلایل بی شمار دیگر داشته اید.شاید به عنوان راه حل هم روش هایی مانند کپی گرفتن از کل پروژه در زمانهای مختلف برای حفظ حالت خاصی از تغییرات را استفاده کنید.
این کار تا حدی جواب میدهد اما در این صورت با انبوهی از دایرکتوری هایی که مانند یک غول بی شاخ و دم بزرگ میشوند چه میکنید؟ و از آن بدتر چگونه آن را با افراد دیگری که با شما در انجام آن همکاری میکنند مشترک میشوید؟
ابزار های مدیریت کد منبع پاسخی برای این شلختگی ها و شلوغی هاست. با استفاده ازین ابزارها میتوانید هرلحظه که مایل بودید تغییرات خود را ثبت کنید، به تغییرات ثبت شده در گذشته را برگردانید و به راحتی با دوستان وافراد تیمتان روی پروژه همکاری کنید بدون اینکه نگران بهم ریختگی و نامنظم شدن در کدهای پروژه باشید.میتوانید هر تغییر را با یک پیغام ثبت کنید، تغییرات که دیگران در پروژه لحاظ نموده اند را ببینید و البته منشاء باگ ها و خطاهای احتمالی را به سادگی یافته و رفع ورجوع کنید.
گیت یک سیستم مدیریت کد کد منبع توزیع شده است.در سیستم های توزیع شده هرکسی که به مخزن اصلی دسترسی دارد یک کپی از مخزن اصلی را در اختیار داشته و تغییرات خود را رو روی آن ثبت میکند و میتواند این تغییرات را با تغییرات بقیه ی اعضا ترکیب کرده و یا به سرور اصلی اضافه کند.
همچنین نرم افزارهای پایداری برای گیت ساخته شده اند و توسط شرکت های بزرگ و در پروژه هایی بزرگی چون کرنل لینوکس استفاده میشود.
تیم توسعه ی گیت یک نرم افزار تحت خط فرمان برای استفاده از گیت ساخته است و البته پروژه های زیادی هم برای کار با گیت چه به عنوان پلاگین برای ویرایشگرها و محیط های مجتمع توسعه و چه بصورت برنامه های جدا با رابط گرافیکی توسعه داده میشوند.