گیت یا Git یک ابزار کنترل ورژن است. این ابزارها سیستمهایی هستند که از تغییرات یک مجموعه فایل (به خصوص مجموعهای از کدها) نگهداری میکنند و امکان جابجایی بین ورژنهای مختلف فایلها را در اختیار توسعهدهندگان قرار میدهد. برای مثال زمانی که یک تیم توسعهدهنده فایلهایی را ایجاد کرده و تغییر میدهند، استفاده از گیت یا سایر ابزارهای مشابه به آنها کمک میکند تا در زمان نیاز بتوانند تغییرات نامطلوب را حذف و به فایلهای قبل از اعمال تغییر برسند. همچنین میتوان فهمید چه کسی یک قطعه کد مشخص را ایجاد کرده است یا میتوان روی ورژنهای مختلف یک برنامه، تغییرات مطلوب را انجام داد. به عنوان مثال میتوان در ورژن 1.3 برای کاربران قدیمی رفع باگ داشت و همزمان ورژن 2.1 را توسعه داد.
باید توجه کرد که Git یک سیستم توزیعشده کنترل ورژن وابسته به سیستمی مرکزی برای ذخیرهی ورژنهای مختلف فایلها نیست. در حالی که اصل فایلها روی یک سرور مشخص ذخیره میشود، هر کاربر یک کپی از مخزن فایلها به همراه تاریخچه کامل آن پروژه را در درایو خود ذخیره میکند. Git همچنین ابزاری مناسب برای همگامسازی کردن کد یک محصول بین توسعهدهندگان آن است. هر توسعهدهنده روی یک نسخه از پروژهی اصلی کار میکند، اما در نهایت تمام این نسخهها در شاخه مستر با هم ادغام میشوند، پس اعضای تیم میتوانند به سادگی مطمئن شوند که روی آخرین نسخه از مخزن کار میکنند و از مشکلات مربوط به اشتراکگذاری فایلها با هم رهایی مییابند.
مفاهیم پایه در Git
1. Working Directory
2. Staging Area
3. Local Repository
4. Remote Repository
Working Directory همان محیط کار شما یا همان پوشهای است که فایلهای شما در آن وجود دارد. برای توضیح این مفاهیم، حالات مختلف یک فایل در Working Directory را در نظر بگیرید:
- این فایل میتواند Staged باشد، به این معنا که فایلها با تغییرات جدید علامتگذاری شدهاند که در Local Repository اصلاح شوند ولی اصلاح انجام نشده است.
- این فایل میتواند Modified شده باشد، به این معنا که تغییرات جدید فایل هنوز در Local Repository ذخیره نشده باشد.
- این فایل میتواند Committed شده باشد، به این معنا که تغییرات جدید فایل در Local Repository ذخیره شده باشد.
دستورات پایهای Git
با استفاده از دستورهای زیر، میتوان به سادگی از این ابزار کنترل ورژن استفاده کرد. هر چند تعداد دستورهای مورد نیاز برای مدیریت بهینهی Git بیشتر از این تعداد هستند، اما این دستورها نیازهای اولیه را برطرف خواهند کرد.
git add: برای اضافه کردن یک یا مجموعهای از فایلها از Working Directory به Staging Area است.
git commit: برای اضافه کردن فایلهای Staged به Local Repository است.
git push: دستوری برای اضافه کردن فایلهای Local Repository به Remote Repository است. با این کار فایلها و تغییرات جدید آن برای سایر افراد در دسترس خواهد بود.
git fetch: برای دریافت فایلها از Remote Repository به Local Repository و نه Working Directory است.
git merge: برای دریافت فایلها از Local Repository به Working Directory است.
git pull: برای دریافت فایلها از Remote Repository به Working Directory است. (معادل استفاده از git fetch و git merge)