Git Lifecycle
توضیحات جلسه
جزوه و مستندات
مفاهیم کلیدی
Git Lifecycle
مجموعه وضعیتهای مختلفی که یک فایل از زمان ایجاد تا ثبت نهایی در مخزن Git طی میکند.
Git Repository
دایرکتوری یا پوشهای که توسط Git تحت نظر گرفته شده و تمام تاریخچه تغییرات در آن ذخیره میشود.
Working Directory
پوشه فیزیکی پروژه در سیستم شما که فایلها در آن قرار دارند و مستقیماً روی آنها کدنویسی میکنید.
Untracked
وضعیتی که در آن فایل در پوشه پروژه وجود دارد، اما Git هنوز آن را تحت نظر نگرفته است و تغییری از آن ثبت نمیکند.
Staging Area
یک محیط میانی و موقت که فایلهای انتخابشده برای ثبت نهایی (Commit) در آنجا گروهبندی میشوند.
Modified
وضعیتی که یک فایل قبلاً توسط Git شناسایی شده است (Tracked)، اما تغییرات جدید آن هنوز به Staging Area اضافه نشدهاند.
Unmodified
وضعیتی که فایل، نسبت به آخرین نسخه ثبتشده در مخزن، هیچ تغییر جدیدی ندارد.
نکات مهم مصاحبهای
چرا Git به محیط Staging نیاز دارد؟
این محیط به برنامهنویس اجازه میدهد تغییرات خود را گروهبندی کند. به این ترتیب، میتوانید فقط فایلهای مرتبط با یک ویژگی خاص را برای Commit انتخاب کرده و تغییرات غیرمرتبط را در یک Commit جداگانه قرار دهید.
تفاوت فایلهای Untracked و Modified چیست؟
فایل Untracked فایلی است که برای اولین بار ساخته شده و Git هیچ سابقهای از آن ندارد.
فایل Modified فایلی است که قبلاً در Git ثبت شده، اما اکنون تغییر کرده است.
دستور git init چه کاری انجام میدهد و چند بار اجرا میشود؟
دستور git init یک دایرکتوری معمولی را به یک Git Repository تبدیل میکند و پوشه مخفی .git را میسازد. این دستور معمولاً فقط یکبار، در ابتدای پروژه، اجرا میشود.
یک Commit حاوی چه اطلاعاتی است؟
هر Commit علاوه بر نسخه لحظهای (Snapshot) فایلها، شامل اطلاعات نویسنده (نام و ایمیل)، زمان دقیق ثبت و یک پیام توضیحی (Commit Message) است.
سناریوی کاربردی
فرض کنید میخواهید یک پروژه جدید را شروع کرده و نخستین فایل خود را ذخیره کنید:
۱. آمادهسازی مخزن
ابتدا با اجرای دستور git init در پوشه پروژه، مخزن را ایجاد میکنید. این کار پوشه مخفی .git را میسازد که مرکز مدیریت تغییرات است.
۲. ایجاد فایل
یک فایل با نام test.txt میسازید. در این مرحله، با اجرای دستور git status مشاهده میکنید که فایل در وضعیت Untracked قرار دارد.
۳. انتقال به مرحله میانی
با اجرای دستور git add test.txt، فایل را به Staging Area منتقل میکنید. اکنون فایل در وضعیت Staged قرار دارد و آماده ثبت است.
۴. ثبت نهایی
با اجرای دستور git commit -m "Initial commit"، یک نسخه لحظهای دائمی از فایل در تاریخچه پروژه ثبت میکنید.
۵. تغییر مجدد
اگر فایل را باز کرده و متنی به آن اضافه کنید، فایل به وضعیت Modified میرود. برای ثبت نسخه جدید، باید دوباره مراحل add و commit را تکرار کنید.
بیشتر بدانید
نکته IDE
در سیستمعاملهای لینوکس و مک، پوشههایی که نام آنها با نقطه شروع میشود، مانند .git، مخفی هستند. برای نمایش آنها در محیط گرافیکی لینوکس، معمولاً از کلیدهای Ctrl + H استفاده میشود.
اهمیت Commit Message
پیامهای Commit باید شفاف و دقیق باشند. بهجای نوشتن عبارتهای مبهم، دقیقاً توضیح دهید چه تغییری ایجاد شده است. این کار در عیبیابی (Debug) پروژهها پس از گذشت زمان بسیار حیاتی است.
استفاده از git status
همیشه قبل و بعد از هر دستور مهم، از git status استفاده کنید تا از وضعیت دقیق فایلها و مرحله آنها در چرخه حیات Git مطلع شوید.
پاکسازی ترمینال
در حین کار با کنسول، اجرای دستور clear صفحه را پاک میکند تا تمرکز بهتری روی خروجیهای جدید داشته باشید.
