رؤية ما الذي تغيّر: status و diff
في الدرس السابق تعرّفت على ثلاث مناطق: شجرة العمل، ومنطقة الـ staging، والسجل (الـ commits). الآن سنتعلّم أمرين يُظهران لك ما يجري بين هذه المناطق دون تغيير أي شيء. git status هو لوحة القيادة الخاصة بك: 'أين أنا وما الذي تغيّر؟' — على أي فرع أنت، وأي الملفات موجودة بالفعل في الـ staging، وما الذي تغ
status هو إيصال أمين الصندوق: قائمة بما هو داخل الصندوق (staged)، وما لا يزال خارجه (unstaged)، وما هو جديد تمامًا. diff هو مقارنة جنبًا إلى جنب للكلمات الدقيقة التي تغيّرت.
- git status
- لوحة قيادة المستودع: الفرع النشط، والملفات الموجودة بالفعل في الـ staging، والتغييرات التي لم تُضف بعد، والملفات الجديدة تمامًا غير المُتتبَّعة (untracked). للقراءة فقط — لا يغيّر شيئًا.
- git diff
- يُظهر الفرق الدقيق سطرًا بسطر. بلا أي راية — بين شجرة العمل والـ staging (ما لم تُضفه بعد). مع --staged — بين الـ staging وآخر commit (ما هو على وشك أن يُحفظ).
- ملف غير مُتتبَّع (untracked)
- ملف جديد موجود في المجلد لكن Git لا يتتبّعه بعد، لأنه لم يُضف قط باستخدام git add. يُدرجه status تحت 'Untracked files'.
- تغييرات غير staged
- تغييرات في ملف مُتتبَّع بالفعل لكنها لم تُضف إلى الـ staging باستخدام git add، لذا لن تدخل في الـ commit التالي حتى تُضيفها.