سحر ابراهیمی
سحر ابراهیمی
خواندن ۳ دقیقه·۵ سال پیش

Git چیست؟


گیت یک کنترل سورس کد (Source Code Manger) است. دقیقتر، یک سیستم کنترل نسخه توزیع شده است. اما این دقیقا به چه معناست؟

گیت یک زبان یا مفهوم نیست. گیت فقط یک برنامه است، یک تکه برنامه که باید در توسعه خود از آن استفاده کنید، درست مثل ویرایشگر یا FTP client خود. بنابراین برای چه ساخته شده است؟ گیت سورس کدهای شما را کنترل می کند… اما این به چه معناست؟

ایده پشت Git (و دیگر برنامه های کنترل سورس کد، که درباره آن هم به زودی صحبت خواهد شد) این است که یک ایده هوشمندانه برای نگهداری کدهای پروژه است. این به این معنی است که در طی فواصلی که کدنویسی می کنید، نقطه ای در تاریخچه پروژه شما ثبت می شود (به عنوان مثال وقتی با مرورگر خود وارد سایتی می شوید، مرورگر آدرس و تاریخ را در حافظه خود نگاه می دارد). به عنوان مثال یک جدول زمانی یا Timeline در نظر بگیرید، که در آنجا تمام تغییرات برجسته یا رویدادهایی که باعث تغییر در مراحل توسعه شده است را نمایش می دهد. این بستگی به شما دارد کی این Markها یــا نقطه ها را ایجاد کنید. ولی عاقلانه نیست که هرگاه چیزی را به اتمام رساندید به عنوان یک نقطه تعیین کنیم. به عنوان مثال شاید بخواهید یک نقطه ای را بعد از اجرای یک ویژگی جدید اضافه کنید. جدول زمانی شما شاید به صورت زیر به نظر برسد:

  • نقطه اول – آغاز یک پروژه، اضافه کردن فایل های CSS و JS
  • نقطه دوم – ساخت ساختار اصلی وب سایت
  • نقطه سوم – اضافه کردن نوار منو

یک مثال جالب از Preston-Werner (یکی از اعضای برجسته Git) : درست مثل این است که شما هر سال با دوربین، عکسی را از کودک خود تهیه کنید تا روند رشد آن را بررسی کنید. بنابراین اگر شما مفهوم جدول زمانی نقطه ها را درک کنید، به نظر من متوجه می شوید که چه وقت Git کار آمد است. اگر بخواهید این کارها را بطور دستی بدون هیچ برنامه کنترل کد انجام دهید باید، در هر بار تغییر در کد، از تمام فایل ها و دایرکتوری ها کپی تهیه کنید و آنها را هر بار تغییر نام دهید. Git این کارها، و خیلی کارهای دیگر را نیز به سرعت انجام می دهد.

?


سیستم های کنترل نسخه برای این ساخته شده اند که بیش از یک شخص بتواند بر روی همان پروژه کار کند. هر برنامه نویس کدها را دانلود می کند، بر روی آن کار می کند، ویژگی جدید یا تغییراتی را ایجاد می کنید (که به این کار commit می گویند، که حتما در github دیده اید). آنگاه می توانید با commitهای دیگر برنامه نویسان به اشتراک بگذارید.

در اینجا هم، پروژه ما شبیه به مدل هواپیما است، و هر عکسی که از مدل هواپیما می گیرید یک commit است. بعد از اینکه پروژه خود را به اتمام رساندید می توانید به عقب برگردید و تمام commitها را مشاهده کنید و ببینید که فایل ها در نقطه های توقف به چه شکلی دیده می شوند.

هنگامی که از یک سیستم کنترل (VCS) استفاده می کنید و به طور منظم commit ایجاد می کنید، لازم نیست نگران این باشید که چیزی خراب یا نابود شود. اگر واقعا چیزی را از دست بدهید، تنها لازم است که به آخرین commit خود بازگردید و کار را ادامه دهید.

با استفاده از VCS به آسانی می توانید پروژه خود را با دیگران به اشتراک بگذارید، و به دیگر توسعه دهنده ها این امکان را بدهید که آن را توسعه بدهند. بدون VCS، مجبور هستید به طور دستی، تغییرات را کپی، مقایسه و تغییرات آنها را با دست انجام دهید. که این اصلا سرگرم کننده نیست.

شاید از این پست‌ها خوشتان بیاید