git range-diff

الـ patches وإعادة الكتابة

مقارنة نسختين من سلسلة commits


يقارن الأمر 'git range-diff' نسختين من سلسلة الـ commits نفسها — عادة فرعًا قبل rebase أو جولة مراجعة وبعدها. يزاوج كل commit قديم بنسخته الجديدة ويعلّمه = (دون تغيير) أو ! (متغيّر، مع diff للـ diffs) أو < (في النسخة القديمة فقط) أو > (في الجديدة فقط). يستخدمه المراجعون لرؤية ما تغيّر بين نسخ سلسلة patches.

الصيغة

git range-diff <base> <old-tip> <new-tip>
git range-diff <old-tip>...<new-tip>
git range-diff <old-range> <new-range>
[ ] اختياري| أو<arg> قيمة تُستبدل... قابل للتكرار--flag خيار

أمثلة

بعد rebase

git range-diff main old feature

النسخة القديمة والجديدة من الفرع على الأساس main.


الصيغة المتناظرة

git range-diff old...feature

يجد Git الأساس بنفسه.


مع ORIG_HEAD

git range-diff ORIG_HEAD...HEAD

مباشرة بعد rebase: قبل مقابل بعد.

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

1
git rebase main

Rebase

2
git range-diff ORIG_HEAD...HEAD

المقارنة قبل وبعد

حل المشكلات

كل شيء يظهر كـ < و>

السبب: لا توجد commits متشابهة في النطاقين

تحقّق من الأساس والرؤوس التي مررتها

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

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

  • ✓احتفظ بفرع أو وسم على النسخة القديمة قبل إعادة كتابة سلسلة مُراجَعة.

أخطاء متكررة

  • ✗مقارنة الفروع بـ git diff بعد rebase — يخلط كل تغييرات الأساس الجديد.

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

A:

لا: يقارن commit بـ commit متجاهلًا التغييرات الآتية من الأساس الجديد.