git diff
مقارنة التغييرات سطرًا بسطر git diff
git diff يعرض الفرق الدقيق سطرًا بسطر بين نسختين — مجلّد العمل والتجهيز، أو بين أي commitين.
بينما git status يخبرك *أي* ملفّات تغيّرت، git diff يريك *بالضبط ماذا* تغيّر داخل كل ملف — أي أسطر أُضيفت (بعلامة +) وأيّها حُذفت (بعلامة -). بلا معاملات، يقارن مجلّد العمل بمنطقة التجهيز؛ بمعاملات مختلفة يقارن أي نقطتين في التاريخ.
مراجعة git diff قبل كل commit عادة ممتازة — تكتشف أخطاء مطبعية أو تعديلات نسيتها قبل أن تصبح جزءًا من التاريخ الدائم.
الصياغة
git diff [خيارات] [مصدر] [هدف]
📄 مثال
git diff # تعديلات غير مجهّزة بعد git diff --staged # تعديلات مجهّزة، جاهزة للـ commit القادم git diff main feature # الفرق بين فرعين كاملين git diff HEAD~2 HEAD # الفرق بين آخر commit وقبل commitين
أهم الخيارات
| الخيار | الوظيفة |
|---|---|
| --staged / --cached | يعرض فرق التعديلات المجهَّزة تحديدًا، لا مجلّد العمل |
| --stat | ملخّص مختصر: عدد الأسطر المضافة/المحذوفة لكل ملف، بلا التفاصيل الكاملة |
| <commitA> <commitB> | يقارن بين أي نقطتين في التاريخ (commits أو فروع) |
💡 نصائح عملية
- راجع git diff --staged مباشرة قبل git commit كخطوة أخيرة للتأكد من دقّة ما ستحفظه
- git diff --stat مفيد لمعاينة سريعة لحجم التغييرات قبل الدخول في التفاصيل الكاملة
⚠️ أخطاء شائعة
- نسيان --staged عند مراجعة تعديلات أُضيفت بالفعل عبر git add، فيظهر diff فارغ بالخطأ
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار GIT الكامل بالعربي.