Git
مقدمه
VCS یا کنترلِ نسخه، سیستمی است که تغییرات را در فایل یا دستهای از فایلها ذخیره میکند و به شما این امکان را میدهد که در آینده به نسخه و نگارش خاصی برگردید.
اگر شما یک گرافیست یا طراح وب هستید و میخواهید نسخههای متفاوت از عکسها و قالبهای خود داشته باشید، استفاده از یک Version Control System یا سیستمِ کنترلِ نسخه انتخاب درستی است. VCS به شما این امکان را میدهد که فایلهای انتخابی یا کل پروژه را به یک حالت قبلی خاص برگردانید، روند تغییرات را بررسی کنید، ببینید چه کسی آخرین بار تغییری ایجاد کرده که احتمالاً مشکل آفرین شده، چه کسی و چه وقت مشکلی را اعلام کرده و موارد کاربردی دیگر.
همچنین استفاده از VCS به ا ین معناست که اگر شما در حین کار چیزی را خراب کردید و یا فایلهایی از دست رفت، به سادگی میتوانید کارهای انجام شده را بازیابی نمایید. همچنین مقداری سربار به فایلهای پروژهتان افزوده میشود.
هر چیزی در گیت قبل از اینکه ذخیره شود چکسام و سپس متعاقباً با آن چکسام فراخوانی میشود. این بدان معناست که غیرممکن است که محتوای فایل یا پوشهای را بدون اینکه گیت متوجه شود ویرایش کنید. این کارکرد درون گیت و در پایینترین مرتبهها ساختار یافته و با تاروپود فلسفهاش همراه است. ممکن نیست که شما اطلاعات را حین انتقال یا بر اثر خرابی از دست بدهید بدون اینکه گیت آن را تشخیص دهد.
وقتی که کاری در گیت میکنید، تقریباً تمام آن افزودن به اطلاعات درون پایگاهداده گیت است. به بیان دیگر، انجام کاری که سیستم نتواند آن را بازگردانی کند یا اجبار آن به پاکسازی کامل اطلاعات به هر نحو بسیار دشوار است. اما در هر VCS دیگر، شما میتوانید تغییراتی که هنوز کامیت نکردهاید بهم بریزید یا از دست بدهید، اما بعد از اینکه یک اسنپشات به گیت کامیت کردید، از دست دادن آن بسیار مشکل است، بخصوص اگر به طور منظم پایگاهدادهتان را به مخزنی دیگر پوش (Push) کنید.
برای آشنایی بیشتر با این مفهوم میتوانید از لینک زیر استفاده کنید:
نصب
برای استفاده از امکانات Git در محیط Terminal یا CMD، باید برنامهی Git را دانلود و نصب کنید که برخی از IDEها نیز برای اینکه امکانات این ابزار را در قالبی گرافیکی در اختیار کاربر بگذارند، بهعنوان پیشنیاز به این برنامه نیاز دارند، پس پیشنهاد میشود فارغ از ترجیحات، این نرمافزار را نصب کنید.
ابزار دیگری که امکانات Git را در قالبی گرافیکی در اختیار شما میگذارد نرمافزار GitHub Desktop میباشد که با داشتن اکانت GitHub میتوانید از امکانات آن بهرهمند شوید.
برای آشنایی بیشتر با این مفهوم میتوانید از لینک زیر استفاده کنید:
یادگیری
وضعیت دادهها در گیت
اطلاعات درون گیت میتوانند سه وضعیت داشته باشند: ویرایش شده، استیج شده و کامیت شده.
- ویرایششده یا Modified به این معناست که شما تغییری در فایل ایجاد کردهاید اما هنوز آن را به پایگاه داده خود کامیت نکردهاید.
- استیجشده یا Staged به این معناست که شما ویرایشی در نسخه حال فایل را علامتگذاری کردهاید تا به اسنپشاتِ کامیت بعدی شما اضافه شود.
- کامیتشده یا Committed به این معناست که اطلاعات با امنیت کامل در پایگاهداده محلی شما ذخیره شدهاند.
البته وضعیت «دنبال نشده» نیز داریم که به معنی عدم حضور داده در Git میباشد، ولی این وضعیت از دیدگاهی میان «وضعیت دادهها در گیت» طبقهبندی نمیشود.
برای آشنایی بیشتر با این مفهوم میتوانید از لینک زیر استفاده کنید:
ایجاد پروژه
برای ایجاد پروژه میتوان یکی از دو مسیر زیر را دنبال کرد:
تبدیل یک پوشه محلی به مخزن گیت
- یک پوشۀ جدید ایجاد کنید
- Terminal یا CMD را باز کرده و به پوشه مورد نظر وارد شوید
- با اجرای دستور
git init
در داخل پوشه، یک فولدر به نام .git ایجاد میشود و از این به بعد گیت تغییرات درون این پوشه را دنبال خواهد کرد
cd "/your/project/path"
git init
نسخه برداری(clone) از یک مخزن موجود
- وارد یکی از سرورهای گیت (Github، Gitlab، Microsoft Azure یا ...) شوید
- لینک یک مخزن را کپی کنید
- یک پوشه جدید در سیستم خود ایجاد کنید
- Terminal یا CMD را باز کرده و به پوشه مورد نظر وارد شوید
- از اتصال به اینترنت اطمینان حاصل کنید و دستور
git clone
را اجرا کنید تا فایلهای روی سرور به پوشۀ شما منتقل شوند
cd "/your/project/path"
git clone https://example.come/repository
برای آشنایی بیشتر با این مفهوم میتوانید از لینک زیر استفاده کنید:
اعمال تغییرات
برای آگاهی از وضعیت فایلها از دستور زیر استفاده میشود که فایلهای ویرایش شده و استیج شده را به شما نمایش میدهد:
git status
برای استیج کردن فایلهای ویرایش شده مطابق دستورات زیر، هم میتوان از نام فایل استفاده کرد و هم میتوان از کاراکتر نقطه برای انتخاب تمامی فایلهای تغییر کرده استفاده کرد:
git add <some-file-name.ext>
git add .
در نهایت برای کامیت کردن فایلهای استیج شده میتوانید از دستور زیر استفاده کنید که اسنپشاتی از فایلها تهیه کرده و در پایگاه دادۀ محلی ذخیره میکند:
git commit -m "some brief description about changes you have made"
برای مشاهده لیست کامیتهای انجام شده روی مخزن خود نیز میتوانید از دستور زیر استفاده کنید:
git log
همچنین میتوانید گزارش بالا با دستور زیر به صورت خلاصهتر مشاهده کنید:
git log --oneline
برای آشنایی بیشتر با این مفهوم میتوانید از لینک زیر استفاده کنید:
بازگرداندن تغییرات
همانگونه که پیشتر گفته شد یکی از مزایای استفاده از ابزارهای کنترل نسخه امکان بازگشت به عقب و اصلاح اشتباهات است، در این قسمت به راهحلهای موجود میپردازیم.
amend
یکی از برگشتهای معمول زمانی صورت میگیرد که زودتر از آنچه که باید تغییرات را کامیت کردهاید
یا بعد از کامیت کردن متوجه مشکلی در فایلهای کامیت شده یا تگ کامیت میشوید.
در این حالت با استفاده از گزینۀ amend--
میتوانید فایلهای استیج شده را به کامیت قبلی اضافه کنید و توضیحات کامیت را نیز ویرایش کنید:
git commit -m "new description" --amend