git show

الفحص والمقارنة

عرض commit أو وسم أو ملف في نسخة معيّنة


يعرض الأمر 'git show' كائنًا واحدًا. للـ commit يطبع المؤلف والتاريخ والرسالة يليها الـ diff الذي أدخله. وللوسم المُعلَّق يعرض رسالة الوسم ثم الـ commit. ومع <commit>:<path> يطبع ملفًا كما كان بالضبط في ذلك الـ commit.

الصيغة

git show [<options>] [<object>...]
[ ] اختياري| أو<arg> قيمة تُستبدل... قابل للتكرار--flag خيار

الخيارات

انقر على أي خيار لتوسيعه

مبتدئ (2)

عرض ملخّص للملفات المتغيّرة بدل الـ diff الكامل.

موصى بهفحص سريع لحجم commit قبل قراءته

مثال

git show --stat

طباعة الترويسة في سطر واحد: hash مختصر والعنوان.

عند الحاجةترويسة مختصرة حين يهمّك الـ diff فقط

مثال

git show --oneline

اختيار الخيار المناسب

show مقابل log مقابل diff

ثلاث طرق للنظر في السجل

الأمريعرض
git logقائمة commits
git show <commit>commit واحد وتغييراته
git diff A Bالفرق بين أي نسختين

أمثلة

آخر commit

git show

يعرض HEAD مع الـ diff الخاص به.


أي commit

git show a1b2c3d

يعرض ذلك الـ commit.


ملف في commit قديم

git show HEAD~2:app.js

يطبع app.js كما كان قبل commit‏َين.


الملخّص فقط

git show --stat

الملفات المتغيّرة بدل الـ diff الكامل.

أمثلة على سير العمل

1
git log --oneline

العثور عليه

2
git show --stat a1b2c3d

الملفات التي لمسها

3
git show a1b2c3d

التغيير كاملًا

حل المشكلات

fatal: path 'x' does not exist in 'HEAD~1'

السبب: الملف لم يكن موجودًا في ذلك الـ commit، أو المسار خاطئ

استخدم المسار من جذر المستودع؛ تحقّق بـ git show --stat

commit دمج لا يعرض diff

السبب: الدمج يعرض diff مجمَّعًا لأسطر التعارض فقط

استخدم git show -m أو git diff <merge>^1 <merge>

نصائح وأخطاء شائعة

أفضل الممارسات

  • ✓ابدأ بـ --stat في الـ commits الكبيرة.
  • ✓استخدم commit:path لقراءة نسخة قديمة دون تغيير ملفاتك.

أخطاء متكررة

  • ✗كتابة git show HEAD~1 app.js (مرشِّح) وأنت تقصد HEAD~1:app.js (محتوى الملف).
  • ✗استخدام مسار نسبي لمجلدك دون ./ في commit:path — المسارات تبدأ من جذر المستودع.

الأسئلة الشائعة

A:

git show <commit>.

A:

لقراءتها: git show <commit>:<path>. لاستعادتها: git restore --source=<commit> <path>.