تخطَّ إلى المحتوى

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 الكامل بالعربي.