گیت (git) چیست ؟

سلام سلام من دانیالم با یک پست کوچولو صرفا برای کسایی هیچ اطلاعاتی درباره گیت ندارن.خوب گیت چیه اصلا ؟خوب سوال خوبیه (اما برای برنامه نویسا)فکر کنید یک پروژه نسبتا بزرگ یا متوسط زدید که کلی فایل توشه ، مثلا به فرض یک اپ اندروید که صفحه های مختلفی توش داره. از صفحه لاگین گرفته تا صفحه کاربران ، لیست خرید و فلان بیسارخوب حالا ما میخوایم یک صفحه ای به نام مثلا علاقه مندی ها بهش اضافه کنیم که قطعا با بقیه صفحات هم در ارتباط هست ، اینکارو هم میکنیم اما یک هو به یک باگی میخوریم که معلوم نیست از کجا اومدهخوب اینجا دو تا حالت پیش میادیا با git زدی پروژتویا بدون گیت کار کردیخوب اگه جزو افراد دسته اول باشی که کارت خیلی راحته اما اگه جزو افراد دسته دوم باشه تقریبا میشه گفت کارت خیلی خیلی سخته چرا ؟چون باید بشینی کل کدتو یکی یکی دیباگ کنی ببین کجاش مشکل داره با کد جدیدت ، یا شایدم یک چیزی رو اشتباهی دستت خورده و اضافه کردی ولی حواست نیست! خوب اما گیت اینجور جاها میاد کمکت ?گیت قابلتی داره به نام commit یا به فارسی کامیت خودمون. این احتمالا کاری هست که خیلی ها قبل از آشنایی با گیت انجام دادن حتی خود من ?چیکار میکردیم؟! میومدیم از هر نسخه از اپی که درست میکردیم مثلا یک بخش اضافه کردیم که علاقه مندی ها رو بهمون نشون میداد ،میومدیم کل پروژه رو یک بار کپی میگرفتیم تو یک پوشه ذخیره میکردیم که اگه به ارور خوردیم برگردیم به این نسخه که باگ نداشتاین یکی از باحال ترین کارایی که گیت میتونه با یک دستور به راحتی براتون انجام بده، و البته فقط گیت به این کارش خلاصه نمیشه این یکی از صدها کاری بود که میشه با گیت انجام دادقابلیت کامیت (commit)شما میتونید با قابلیت کامیت از هر بخش یا کاری که تو پروژتون انجام دادید یک نسخه مثلا پشتیبان بگیرید با یک توضیح (که بهش تو گیت میگن کامنت) که بفهمید این بکاپ براچی بوده ، بعد خیلی راحت میتونید این کار هارو انجام بدید با گیت (git)دیدن کد های قبلی یا رفتن به صورت کلی به پروژه قبلی (یعنی کل فایل های پروژه قبلی برمیگرده تا ببینید فقط)دیدن تفاوت های در پروژه قبلی ، مثلا یک فایل داشتید به نام x و تو نسخه جدید یکم تغییر دادید یا به صورت ناخواسته تغییر دادیش و به یک باگ خوردید ، تو این فایل این قابلیت میاد میگه تو پروژه قبلی این خط کد ها نسبت به پروژه قبلی تغییر اضافه یا حذف شدهکلا برگشتن به پروژه قبل (یعنی کامیت الانتون حذف شه و تغییرات برگرده به کامیت قبلی یا هر کامیتی که میخواید)آپلود پروژه روی گیت هاب و گرفتن از اون (برای کسایی مثل من که مشکل بکاپ نداشتن از پروژشون رو دارن عالیه)دیدن لیست تمام تغییرات به همراه تاریخ کلی اطلاعات دیگه که گیت در اختیارتون میزاره مثل عکس زیر که از یکی از پروژه های خودمهدقت کنید اینا فقط قابلیت های بخش commit گیت بود ، بازم میگم گیت خیلی خیلی بزرگ تر از چیزیه که فکر میکنید و ده ها یا شایدم صد ها قابلیت دارهبه عنوان مثال قابلیت مرج هم یکی از قابلیتای خوبه که میتونیم بهش اشاره کنیمقابلیت مرج و برنچ (branch)فکر کنید شما یک شرکت با تعداد کارکنان زیاد یا متوسط هستید و همگی روی یک اپلیکیشن ، سایت ، نرم افزار یا هرچیزی به صورت مشترک کار میکنیدبه فرض همه روی طراحی یک سایت کار میکنید خوب ، یکی میخواد بخش ورود سایت رو بنویسه یکی دیگه مثلا بخش پرداخت سایت. خوب اینا همه با هم که نمیتونن به فایل های اصلی دسترسی داشته باشن (اینجا فایل اصلی همون هسته سایتمون میشه). خوب گیت میاد چیکار میکنه میاد به هر کسی دسترسی یک نسخه از اون سایت رو میده بدون اینکه بتونن تغییری ایجاد بکنن روی اصل کار (نکه نتونن میتون یعنی اینجا رو تغییر بدن تو سایت هیچی تغییر نمیکنه)بعد کسی که مثلا میخواد صفحه لاگین رو طراحی بکنه ، وقتی طراحیش تموم شد میاد به مدیر اصلی پروژه درخواست میده که آقا صفحه لاگین تموم شد مدیر پروژه هم وقتی تایید بکنه این میاد به عنوان یک قابلیت میچسبه یا اضافه میشه به پروژه اصلی یک چیزی شبیه تصویر زیر هست این کاردقیقا مثل عکس بالا قابلیتی که قراره به پروژتون اضافه کنید میشه Feature و پروژه اصلی یا هسته پروژتون میشه Master یا Main یا هر اسمی میخواین براش بزارینو در آخر وقتی مدیر پروژه اینو تایید کرد میاد و به پروژه اصلی اضافه میشهاین بود از دو تا از قابلیت های خوبه گیت که البته کل گیت به اینا خلاصه نمیشه و کلی کار دیگه میشه باهاش کرداگه خواستین میتونم کار با گیت هم توی پست های بعدی تو ویرگول بهتون توضیح بدمبرای نصبشم خیلی سادس فقط کافیه برای لینوکس از دستور زیر استفاده کنید :sudo apt install gitو واسه نصب ویندوز هم باید برید تو سایتhttps://git-scm.comامیدوارم این مطلب براتون مفید بوده باشه