في هذا الدرس 6تصفّح المواضيع
يُعد الأمر git status الأداة التشخيصية الأكثر استخداماً في حياة المطور اليومية؛ فهو أمر قراءة آمن بنسبة 100% يفحص مجلد العمل ومنطقة التجهيز ليقدم لك تقريراً فورياً واضحاً:
- اسم الفرع النشط: يعرض في السطر الأول اسم الفرع الذي يشير إليه
HEADحالياً مثلOn branch main. - حالة النظافة التامة: إذا لم يتغير أي ملف متتبع ولم تُضف ملفات جديدة، يظهر السطر المطمئن
nothing to commit, working tree clean. - إرشادات مدمجة: يرفق الأمر مع كل قسم تلميحات ذكية تذكرك بالأمر المناسب للخطوة التالية.
git init -b main status-demo
cd status-demo
git status
# On branch main
# No commits yet
يصنف نظام Git أي ملف داخل مجلد مشروعك ضمن فئتين رئيسيتين: ملف متتبع (Tracked) أو ملف غير متتبع (Untracked):
- الملفات المتتبعة (Tracked): هي الملفات المسجلة مسبقاً في آخر لقطة أو المضافة إلى منطقة التجهيز، ويراقبها Git ليرصد إن كانت سليمة أو معدلة أو مجهزة.
- الملفات غير المتتبعة (Untracked): أي ملف جديد أنشأته في المجلد ولم يسبق حفظه أو تجهيزه؛ يدرجه التقرير تحت قسم
Untracked filesولا يدخل في أي لقطة حتى تأمر بتجهيزه صراحةً.
# Create a brand-new HTML file in the folder
echo "<h1>CloseTag</h1>" > index.html
git status
# Untracked files:
# index.html
عند تعديل ملفات متتبعة داخل المشروع، يفصل تقرير git status بينها في قسمين مستقلين لتعرف بدقة ما سيدخل في اللقطة القادمة وما سيبقى خارجها:
- قسم
Changes not staged for commit: يضم الملفات المتتبعة التي عدّلتها في مجلد العمل ولكنك لم تنقلها إلى منطقة التجهيز بعد. - قسم
Changes to be committed: يضم الملفات المجهزة في الفهرس والجاهزة تماماً للحفظ في اللقطة القادمة.
رغم وضوح التقرير الافتراضي المفصل، يفضل المطورون في المشاريع الكبيرة عرض ملخص رشيق يعرض كل ملف في سطر واحد عبر الخيار المختصر git status -s (أو git status --short)، كما يمكن دمج الخيار -b ليصبح git status -sb لإظهار اسم الفرع الحالي أعلى القائمة المختصرة.
# Compact short status output (one line per file)
git status -s
# Short status including the current branch name
git status -sb
في العرض المختصر git status -s، يبدأ كل سطر بعمودين من الرموز (XY) يسبقان اسم الملف:
- العمود الأيسر (
X— منطقة التجهيز): يوضح حالة الملف داخل الفهرس؛ مثلM(معدل ومجهز) أوA(ملف جديد أُضيف للتجهيز) أو مسافة فارغة إذا لم يُجهز. - العمود الأيمن (
Y— مجلد العمل): يوضح حالة الملف في مجلد العمل؛ مثلM(معدل على القرص ولم يُجهز بعد). - الرمز المزدوج
??: يدل على ملف جديد غير متتبع إطلاقاً.
# Decoding two-column short status (XY):
# M index.html -> Staged in Index, clean in Worktree
# M styles.css -> Not staged in Index, modified on disk
# MM app.js -> Staged version + newer unstaged edit
# ?? readme.md -> Untracked new file
يجمع الجدول المرجعي التالي دلالات رموز الحالة المختصرة في git status -s قبل الانتقال إلى تجهيز الملفات بالأمر git add في الدرس السابع:
| الرمز المختصر XY | العمود الأيسر (التجهيز) | العمود الأيمن (مجلد العمل) | المعنى الدقيق لحالة الملف |
|---|---|---|---|
| ?? | غير متتبع | غير متتبع | ملف جديد في المجلد لم يبدأ Git بتتبعه بعد |
| A | مضاف حديثاً | سليم | ملف جديد تم تجهيزه في الفهرس لأول مرة |
| M | معدَّل ومجهز | سليم | ملف متتبع عُدِّل وتم تجهيزه للالتزام القادم |
| M | غير مجهز | معدَّل | ملف متتبع عُدِّل في مجلد العمل ولم يُجهز بعد |
| MM | معدَّل ومجهز | معدَّل مجدداً | جُهِّزت نسخة منه ثم عُدِّل مرة أخرى على القرص |
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
أتقنت في هذا الدرس قراءة التقرير التفصيلي للأمر git status، والتمييز بين الملفات غير المتتبعة والمعدلة والمجهزة، واستخدام العرض المختصر -s و-sb، وتفسير رموز العمودين بدقة. الخطوة التالية: انتقل الآن إلى الدرس رقم 7 «تجهيز الملفات عبر الأمر git add» لنقل التعديلات إلى منطقة التجهيز.
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.
المصطلحات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 Untracked File الملف غير المتتبع
- ملف موجود في مجلد العمل لم يكن ضمن اللقطة السابقة ولم يُضف بعد إلى منطقة التجهيز.
- للمراجعة
- 02 Tracked File الملف المتتبع
- ملف مسجل في تاريخ المستودع أو منطقة التجهيز يراقب Git أي تعديل يطرأ عليه.
- للمراجعة
- 03 Short Status Format تنسيق الحالة المختصر
- العرض المدمج الناتج عن git status -s والذي يوضح حالة التجهيز بالعمود الأيسر وحالة العمل بالعمود الأيمن.
- للمراجعة
- 04 Clean Working Tree شجرة عمل نظيفة
- حالة المستودع عندما تطابق جميع الملفات آخر لقطة محفوظة دون وجود تعديلات معلقة أو ملفات جديدة.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
الاختصارات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 XY XY
- Two-Column Short Status Format
- الرمزان في بداية سطر الحالة المختصر؛ حيث يمثل X منطقة التجهيز ويمثل Y مجلد العمل.
- للمراجعة
- 02 MM MM
- Modified in Index and Worktree
- رمز يفيد بأن الملف جُهِّز في الفهرس ثم طرأ عليه تعديل إضافي جديد في مجلد العمل.
- للمراجعة
- 03 CLI CLI
- Command-Line Interface
- بيئة سطر الأوامر التي يعرض فيها git status تقارير الفحص.
- للمراجعة
- 04 HEAD HEAD
- Active Branch Pointer
- المؤشر الذي يطبع git status اسم فرعه النشط في بداية التقرير.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
بدّل بين تبويبات المختبر التفاعلي الثلاثة لمقارنة شجرة العمل النظيفة والتقرير المفصل والوضع المختصر -s.
-
راجع جدول الرموز في الموضوع السادس وحدد دلالة العمود الأيسر والعمود الأيمن لكل حالة.
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.
لمحة عن التحدي8 أسئلة تنتظرك +
ما الوظيفة الأساسية للأمر git status؟
يفحص الأمر git status مجلد العمل ومنطقة التجهيز لعرض الملفات غير المتتبعة والمعدلة والمجهزة.
يُعد تشغيل الأمر git status عملية فحص للقراءة فقط ولا يغير محتوى ملفاتك أو سجل الالتزامات أبداً.
صواب؛ فالأمر git status يقرأ الحالة فقط ولا يعدل أي ملف.
كيف يصنف نظام Git ملفاً جديداً أنشأته للتو في مجلد المشروع ولم يسبق تجهيزه أو حفظه؟
يُصنَّف الملف الجديد الذي لم يدخل الفهرس أو اللقطات السابقة بأنه غير متتبع Untracked.
أي خيار مع الأمر git status يعرض ملخصاً مختصراً بسطر واحد لكل ملف؟
يعرض الخيار -s (أو --short) الحالة المختصرة للملفات في سطر واحد لكل ملف.
في المخرجات المختصرة للأمر git status -s، ماذا يعني الرمز "??" قبل اسم الملف؟
يدل الرمز ?? على أن الملف جديد وغير متتبع في المستودع.
في مخرجات git status -s، ما الفرق بين وجود حرف M في العمود الأيسر ووجوده في العمود الأيمن؟
وجود M في العمود الأيسر يعني أن التعديل مجهز في الفهرس، بينما وجوده في العمود الأيمن يعني أنه معدل في مجلد العمل وغير مجهز.
يعني الرمز "MM" في العرض المختصر أن الملف تم تجهيزه في الفهرس ثم عُدِّل مرة أخرى في مجلد العمل.
صواب؛ فالحرف الأول يمثل التعديل المجهز في الفهرس والحرف الثاني يمثل التعديل الأحدث غير المجهز في مجلد العمل.
ما الرسالة التي يطبعها git status عندما تطابق كافة الملفات آخر التزام ولا توجد أي ملفات غير متتبعة؟
يطبع النظام عبارة nothing to commit, working tree clean.