گیت چطور کار میکنه ؟
گیت: ابزار کنترل نسخه توزیعشدهای است که تغییرات اعمالشده به کد شما را در طول زمان رصد میکند. گیت امکان پیگیری تغییرات به مخزن کد شما را ساده میکند و امکان همکاری در پروژهها با دیگران را فراهم میکند. این ابزار توسط لینوس توروالدز در سال ۲۰۰۵ برای توسعه کرنل لینوکس ایجاد شد، و سایر توسعهدهندگان کرنل به توسعه اولیه آن کمک کردند.
این امکان را به ما میدهد که تغییرات را در کد خود ردیابی کرده و با همکاران به صورت توزیعشده در قسمتهای مختلفی از مخزن کد کار کنیم. هنگامی که از توزیعشده بودن صحبت میکنیم، ممکن است فکر کنیم که کد ما در دو مکان، یعنی سرور از راه دور و محلی، وجود دارد، اما داستان کمی پیچیدهتر است.
گیت سه فضای ذخیرهسازی دارد: دایرکتوری کاری، محیط استیجینگ و مخزن محلی.
1. 𝗪𝗼𝗿𝗸𝗶𝗻𝗴 𝗗𝗶𝗿𝗲𝗰𝘁𝗼𝗿𝘆:
اینجا جایی است که کار میکنید و فایلهای شما زندگی میکنند (همچنین “بدون پیگیری” نیز نامیده میشوند). تمام تغییرات فایلها در اینجا علامتگذاری خواهند شد؛ اگر به گیت ذخیره نشوند، آنها را از دست خواهید داد. دلیل این امر این است که گیت از این فایلها آگاه نیست.
2. 𝗦𝘁𝗮𝗴𝗶𝗻𝗴 𝗔𝗿𝗲𝗮:
وقتی تغییرات خود را با دستور git add ذخیره میکنید، گیت شروع به پیگیری و ذخیره تغییرات شما با فایلها میکند. این تغییرات در دایرکتوری .git ذخیره میشوند. سپس، فایلها از دایرکتوری کاری به محیط استیجینگ منتقل میشوند. با این حال، اگر این فایلها را تغییر دهید، گیت از آنها خبر نخواهد داشت؛ شما باید به گیت اعلام کنید که این تغییرات را توجه کند.
3. 𝗟𝗼𝗰𝗮𝗹 𝗥𝗲𝗽𝗼𝘀𝗶𝘁𝗼𝗿𝘆:
اینجاست که همه چیز (کمیتها) در دایرکتوری .git ذخیره میشود. وقتی میخواهید فایلهای خود را از محیط استیجینگ به مخزن محلی انتقال دهید، میتوانید از دستور git commit استفاده کنید. پس از این کار، محیط استیجینگ شما خالی خواهد شد. اگر بخواهید ببینید چه چیزی در مخزن محلی وجود دارد، دستور git log را امتحان کنید.
بعضی از دستورات اصلی گیت عبارتند از:
– git init: ایجاد یک مخزن جدید گیت در دایرکتوری
– git branch: ایجاد یک شاخه محلی جدید
– git checkout: تغییر شاخهها
– git add: افزودن یک فایل جدید به محیط استیجینگ
– git commit: افزودن تغییرات استیجینگ شده به مخزن محلی
– git pull: برداشتن کد از مخزن از راه دور به دایرکتوری محلی
– git push: ارسال تغییرات مخزن محلی به مخزن از راه دور
– git status: نمایش فایلهایی که در حال پیگیری هستند (و غیرپیگیری شدهاند)
– git diff: مشاهده تفاوتهای واقعی در کد بین دایرکتوری کاری و محیط استیجینگ
.
✅ @SEYED_BAX