گیت مخفف کلمه GNU Interactive Tools است.
"تصور کن که داری یک پروژهای رو انجام میدی، مثلا یک کتاب مینویسی. گیت به تو کمک میکنه تا بتونی تغییرات مختلفی که در نوشتههات انجام میدی رو ثبت و ذخیره کنی. اینجوری اگه یه روزی اشتباه کردی یا خواستی به نسخه قبلی نوشتههات برگردی، میتونی به راحتی این کار رو انجام بدی. همچنین اگه با چند نفر دیگه روی این کتاب کار کنی، میتونی ببینی که هرکسی چه تغییراتی داده و همه تغییرات رو با هم ترکیب کنی.
در واقع، گیت یک ابزار است که به ما کمک میکند تا همیشه بتوانیم نسخههای مختلف از کارمان را داشته باشیم و هر وقت نیاز بود به نسخهای قبلی برگردیم یا تغییرات جدید را اعمال کنیم.
یکی از مهم ترین ابزار ها برای توسعه نرم افزاری گیت است.این پلتفرم پیشرفته اغلب برای پیشگیری تغیرات در فایل ها مورد استفاده قرار میگیرد, با استفاده از گیت قادیم ورژن های مختلف از یک پروهژه را چه به صورت محلی و چه به صورت سرور دوردست ذخیره بکنیم پس امکان نظارت دقیقا بر روی کد ها و همچنین تطبیق و ترکیب کد ها را فراهم میکند.گیت پایه بسیاری از سرویس ها مانند githubو gitlabاست .
سرور در اینجا مثل یک کتابخانه عمومی است. هرکسی میتواند نسخهای از کتاب خودش را در این کتابخانه قرار دهد یا نسخهای از کتابهای دیگران را بگیرد. اینجوری اگر چند نفر بخواهند روی یک کتاب کار کنند، میتوانند به راحتی نسخههای جدید را در کتابخانه قرار دهند و بقیه هم به آن دسترسی داشته باشند
سیستم کنترل نسخه:یعنی امکان دستسرسی به تغیراتی قبلی را میدهد و حتی میتوانیم ان هارا باهم مقایسه کنیم
توزیع شده:یعنی ما افلاین هم میتوانیم با ان کار کنیم و زمانی که انلاین شدیم ان تغیرات اعمال شوند
متن باز:یعنی کد در اختیار عموم قرار میگیرد و هرکسی میتواند ان را تغیرو بهبود دهد.
این سیستم از دستورnot Diffrenceوsnapshots یعنی برخلاف بقیه سیستم ها که به صورت لیستی از تغیرات مبنی بر فایل دستورات خود را ذخیره میکنند گیت دستورات خود را از تصویر های لحظه ای از کل مخزن در زمان های مختلف ذخیره میکند
گیت مانند یک سیستم تولید محتوا عمل میکند و به تیم های توسعه اجازه میدهد تا به صورت مشترک روی یک فایل کار انجام دهندو اجازه میدهد انها کار نهایی خود را به صورت مشترک ببینند.
علاوه بر این ها گیت از امنیت بسیار بالایی برخوردار هست و همین باعث میشود تا ما بدانیم کد هایمان حفاظت شده هستند
ریپازیتوری در این مثال مثل یک پوشه است که همه صفحات کتاب، تغییرات مختلف، و یادداشتهایت را در آن نگه میداری. هر وقت که چیزی در کتاب تغییر میدهی یا صفحه جدیدی اضافه میکنی، این تغییرات در همان پوشه ذخیره میشوند. اگر با دیگران روی این کتاب کار میکنی، آنها هم میتوانند نسخهای از این پوشه داشته باشند و تغییرات خودشان را به آن اضافه کنند
در گیت دو نوع ریپازیتوری وجود دارد:
لوکال زمانی است که فایل را درون خود قرار میدهد و به راحتی در دسترس بدون واسط قرار میدهدو ریپازیتوری ریموت زمانی است که داخل سرور قرار دارد.
برنچ یک شاخه مستقل از تاریخچه تغیرات پروژه است و به ما اجازه میدهد به طور مستقل روی شاخه های دیگر کد به طور همزمان کار کنیم بدون اینکه تاثیری روی شاخه دیگه بگذارد.
فرض کن داری کتابی مینویسی و میخوای یک فصل جدید بهش اضافه کنی یا یک بخش از کتاب رو به طور کلی بازنویسی کنی. اما نمیخوای که این تغییرات بلافاصله روی نسخه اصلی کتابت تأثیر بذاره. پس یک کپی از کتاب میگیری و تغییراتت رو روی این کپی انجام میدی. این کپی جدید در واقع همون برنچ یا شاخه است.
زمانی که یک ریپازیروتی جدید در گیت میسازیم به طور خودکار یک شاخه جدید به نام masterایجاد میشود که به ان شاخه اصلی میگویند و هر کاری که انجام دهیم روی این شاخه انجام میشود
برنچها در گیت به شما این امکان را میدهند که توسعهی نرمافزار را به صورت مدیریت شده و موازی پیش ببرید و از تداخل تغییرات و ایجاد مشکلات ناخواسته جلوگیری کنید.
git init
git clone
git add
git commit
git push
در پست بعدی این 5 دستور را توضیح خواهم داد