مدیریت کدمنبع
اصطلاح کنترل کدمنبع ( source control ) یا کنترل نسخه ( version control، همچنین revision control ) به عمل مدیریت، کنترل و ثبت و ضبط مستنداتی همچون کدها و مستندات نرمافزاری، اطلاعات وبسایتها، تاریخچهی تغییرات تصاویر و مواردی از این دست اطلاق میشود. تغییرات معمولاً با یک شماره نسخه ذخیره میشوند.
سیستمهای کنترلنسخه هم بصورت مجزا برای کنترل تغییرات نوشتهها و کدها ساخته میشوند و هم در برخی نرمافزارهای واژهپرداز بصورت درونی پیادهسازی شدهاند. نرمافزارهای کنترل نسخه، پایهی کارهای تیمی در تیمهای نرمافزاری است.
مدیریت کد منبع با git
کنترل نسخه روشی برای ثبت تغییرات کدها و نوشتههایمان است، با این امکان که هرگاه بنا برنیازمان به مرحلهی خاصی از تغییرات ثبت شده برویم.
روشها و همچنین ابزارهای زیادی برای این کار معرفی شدهاند و git یکی از این ابزارهاست که لینوس توروالدز — خالق لینوکس — آن را برای اولین بار برای توسعهی کرنل لینوکس توسعه داد و هماکنون به ابزاری کلیدی در عمدهی پروژههای برنامهنویسان بدل شده است.
چرا نیاز داریم از ابزارهای مدیریت کد منبع استفاده کنیم؟
اگر تابحال تجربهای هرچند کوتاه در برنامهنویسی داشته باشید احتمالاً تجربهی از دست دادن بخشی از پروژه را به دلایل گوناگون مثل ذخیرهی ناخواسته در هنگام قطعی برق یا تغییراتی که بعداً باعث بروز مشکل شدهاند داشتهاید. بهعنوان راهحل شاید روشهایی مانند کپیگرفتن از کل فایلها در زمانهای مختلف را استفاده کرده باشید.
این کار تا حدی جواب میدهد، اما در این صورت با انبوهی از دایرکتوریهایی که مانند یک غول بیشاخودم بزرگ میشوند چه میکنید؟ و از آن بدتر چگونه آن را با افراد دیگری که با شما همکاری میکنند مشترک میشوید؟
ابزارهای مدیریت کد منبع پاسخی برای این شلختگیهاست. با استفاده از این ابزارها میتوانید هر لحظه که مایل بودید تغییرات خود را ثبت کنید، به تغییرات ثبت شده در گذشته برگردید و به راحتی با دوستان و افراد تیمتان روی پروژه همکاری کنید.
معروفترین این ابزارها عبارتند از git، svn، mercurial و cvs که در این میان git یکی از جوانترین و پرطرفدارترینهاست.
گیت چیست؟
گیت یک سیستم مدیریت کد منبع توزیع شده است که میتوانید نوشتهها و کدهایتان را با آن در سیستم شخصی خودتان مدیریت کنید، به تغییراتی در گذشته برگردید، کدها را روی یک سرور گیت (مانند گیتهاب) با دیگران سهیم شوید و گروهی روی توسعهی یک پروژه همکاری کنید.
به پروژههایی که در آنها گیت استفاده میشود مخزن ( repository ) میگویند. یک مخزن گیت حاوی تمامی کدها، تغییرات کد و تنظیمات گیت برای آن پروژه است.
چرا git
امروزه اشخاص و شرکتهای کوچک و بزرگ زیادی از گیت برای کنترل کدهای نرمافزارها، پروژهها و مستندات استفاده میکنند. کرنل لینوکس، زبان برنامهنویسی روبی و فریمورک لاراول نمونهای از پروژههایی هستند که بر روی گیتهاب نگهداری میشوند.
گیت به تغییرات کدها تنها به عنوان چند خطی که تغییر میکنند نگاه نمیکند و پس از ثبت هر تغییر (کامیت) یک تصویر کلی از پروژه را در لحظهی آن تغییر ذخیره میکند.
همچنین گیت برخلاف بسیاری از سیستمهای مدیریت کد منبع وابستگی به سرور اصلی ندارد و تقریباً هرکاری را میتوان بصورت محلی (local) انجام داد.