مدتیه که برنامه نویسی میکنم و نظرم اینه هر روز باید بیشتر از دیروز یاد گرفت تا بشه پیشرفت کرد.
گیت چیه و کجا به کارمون میاد؟
فرض کنید شما مدیر یک پروژه هستید و تعدادی برنامه نویس تحت نظارت شما همزمان روی یک پروژه کار میکنن.
یک هفته از شروع کار گذشته و میخواین کد هایی که برنامه نویس ها نوشتن رو باهم merge کنید. چه مشکلاتی ممکنه داشته باشید؟ حجم کد ها بالا باشه و برای ترکیب کردن اونها به صورت دستی زمان زیادی نیاز باشه که البته احتمال خطا نیز وجو داره ،و یا بخش های مختلفی از چند کد نوشته شده توسط برنامه نویس ها باهم تطابق نداشته باشن و مسائلی از این قبیل...
گیت نرم افزار و سیستم کنترل ورژنی هستش که مشکلاتتون رو حل میکنه. در واقع وقتی یک پروژه رو شروع میکنید به گیت دستور میدید که این پروژه رو تحت نظارت خودش قرار بده . بهتون این امکان رو میده که چند شاخه یا به اصطلاح fork برای پروژه تعیین کنید که هر شخص رو شاخه خودش مشغول کد زدن باشه. و هروقت نیاز بود مدیر پروژه با کمک گیت میاد شاخه های مختلف رو باهم merge میکنه.
تا اینجا همه چیز معمولیه پس کاربرد اصلیه گیت کجاست؟
هر کامیتی (commit) که داخل گیت انجام بشه داخل تاریخچه یا بهتر بگم git log به صورت اتوماتیک ذخیره میشه ، اونوقت اگر جایی از کد ها تطابق نداشته باشه باهم و یا تغییری تو برنامه ایجاد شده باشه میتونیم بریم سراغ تاریحچه و چک کنیم این تغییر کی و توسط کی انجام شده که اگر مشکلی بود حل کنیم.
گیت عمل merge کردن کد ها و یا همون شاخه هارو با دستور git merge به صورت خودکار انجام میده و زمانی به ما ارور نشون میده که ببینه حداقل دو نفر دو تغییر متفاوت در یک خط از کد ایجاد کردن و چون نمیدونه کدوم تغییر باید ثبت بشه به ما ارور نشون میده که بتونیم تغییر نهایی رو براش تعریف کنیم.
یکی از جالب ترین ویژگی های گیت به نظرم قابلیت ورژن گذاشتن روی برنامه ست. یک پروژه ای آماده شده و در حال حاضر دارن ازش استفاده میکنن حالا اگر بعد از مدتی بخوایم یک نسخه جدید از برنامه رو آماده کنیم چیکار کنیم که نسخه قبلی از دسترس خارج نشه؟
با استفاده از گیت شما میتونین تو هر مرحله ای که میخواین برای برنامتون یک برچسب بزارید فرضا بگید این نسخه ۱.۱.۱ از برنامه ی منه که میخوام رو سرور اجرا بشه. بعد از این برچسب گذاری اگر تغییری در کدتون ایجاد کردید، باز هم به سرور بگید نسخه ۱.۱.۱ رو اجرا کن. گیت میاد کد برنامه رو تا جایی که شما با برچسب زدن براش تعیین کرده بودین رو حفظ میکنه و همون برنامه ی قدیمی رو اجرا میکنه تا زمانی که بهش بگین این تغییرات جدید نسخه ۱.۱.۲ برنامه منه.
نکته اینه حتی اگه به طور ناگهانی مشکلی تو نسخه جدیدتون پیش بیاد میتونید به گیت بگید نسخه قبلی رو اجرا کن و اینطوری نسخه ۱.۱.۱ رو سرور اجرا میشه تا وقتی مشکل نسخه جدید حل بشه.
شاید براتون سوال پیش بیاد که آیا گیت فقط برای پروژه های بزرگ و کار های تیمی لازمه؟ نه !
گیت امکانات خوبی برای منظم و مرتب کردن کد های شما داره و شما میتونید از گیت برای پروژه های شخصیتون هم استفاده کنید.
نکته مهم دیگه اینکه گیت فقط برای برنامه نویسی نیست شما میتونید از اون برای پروژه خودتون مثلا نوشتن مقاله ها استفاده کنید. بعد از مدتی پیشرفت پروژتون رو با گیت بررسی کنید.
بخاطر تشابه اسمی که وجود داره بعضا پیش میاد که افراد گیت و گیت هاب رو اشتباه میگیرن ، اما گیت هاب تنها یک هاست هستش که برای اشتراک گذاری پروژه ها استفاده میشه و البته که از گیت استفاده میکنه اما دقیقا خود گیت نیست.
در حال حاضر بلد بودن گیت نکته مثبتی تو رزومهی کاری شماست.
آموزش های متعددی هم براش وجود داره حتی میتونید از داکیومنت های خودش هم استفاده کنید برای یادگیری چون بسیار ساده ست و البته کاربردی.
امیدوارم این مقاله کمکی بهتون کرده باشه.
روزتون خوش.
مطلبی دیگر از این انتشارات
پوینتر سرگردان (dangling pointer) در جاوا
مطلبی دیگر از این انتشارات
زبان برنامه نویسی Scala
مطلبی دیگر از این انتشارات
الگوهای طراحی یا Design Patterns