فایلهای جدید و git status
وقتی فایل جدیدی به پروژه اضافه میکنید چه اتفاقی میافتد؟ آشنایی با فایلهای untracked و دستور git status.
فایلهای جدید در گیت
وقتی در مخزن گیت فایل جدیدی بسازید، گیت آن را میبیند اما هنوز دنبال نمیکند. به چنین فایلی Untracked (ردیابینشده) میگویند.
آزمایش کنیم!
داخل مخزنی که در مبحث قبل ساختید، یک فایل جدید بسازید:
echo "سلام دنیا" > hello.txt
حالا وضعیت را بررسی کنید:
git status
خروجی:
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
hello.txt
nothing added to commit but untracked files present (use "git add" to track)
تفسیر خروجی git status
| پیام | معنی |
|---|---|
On branch main | روی شاخه main هستید |
No commits yet | هنوز هیچ کامیتی ثبت نشده |
Untracked files: hello.txt | فایل hello.txt جدید است و گیت آن را دنبال نمیکند |
nothing added to commit | چیزی برای کامیت آماده نیست |
وضعیتهای مختلف فایل در گیت
هر فایل در گیت میتواند در یکی از این وضعیتها باشد:
| وضعیت | معنی |
|---|---|
| Untracked | فایل جدید است؛ گیت اصلاً آن را دنبال نمیکند |
| Unmodified | فایل دنبال میشود و از آخرین کامیت تغییری نکرده |
| Modified | فایل دنبال میشود اما از آخرین کامیت تغییر کرده |
| Staged | تغییرات فایل برای کامیت بعدی علامت خورده |
چرخه زندگی یک فایل در گیت
Untracked → (git add) → Staged → (git commit) → Unmodified
↓
(ویرایش فایل)
↓
Modified
↓
(git add) → Staged → ...
فرمت خروجی کوتاهتر
اگر خروجی طولانی را دوست ندارید، از فرمت کوتاه استفاده کنید:
git status -s
# ?? hello.txt
| نماد | معنی |
|---|---|
?? | Untracked (ردیابینشده) |
M | Modified (تغییرکرده) |
A | Added (به staging اضافهشده) |
D | Deleted (حذفشده) |
گیت فقط فایلها را میبیند، پوشههای خالی را نه!
گیت پوشههای خالی را دنبال نمیکند — فقط فایلها مهماند. اگر پوشه خالی بسازید، در git status اصلاً دیده نمیشود. یک راهحل رایج، ساخت فایلی به نام .gitkeep داخل پوشه است.
چرا گیت خودکار فایلها را دنبال نمیکند؟
این یک تصمیم هوشمندانه است! فرض کنید فایلهای موقت، لاگ یا فایلهای حاوی رمز عبور در پروژه داشته باشید. اگر گیت خودکار همهچیز را دنبال میکرد، این فایلهای حساس هم وارد تاریخچه میشدند. با علامتگذاری دستی (git add)، شما کنترل کامل دارید که چه چیزی وارد تاریخچه شود.
خلاصه
- فایلهای جدید در گیت Untracked هستند
git statusبهترین دوست شماست — همیشه وضعیت مخزن را با آن چک کنید- چهار وضعیت فایل: Untracked، Unmodified، Modified، Staged
- گیت پوشههای خالی را نمیبیند
این مبحث بخشی از دوره آموزش کامل Git است.