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 mainRebase
2
git range-diff ORIG_HEAD...HEADالمقارنة قبل وبعد
حل المشكلات
كل شيء يظهر كـ < و>
السبب: لا توجد commits متشابهة في النطاقين
تحقّق من الأساس والرؤوس التي مررتها
نصائح وأخطاء شائعة
أفضل الممارسات
- ✓احتفظ بفرع أو وسم على النسخة القديمة قبل إعادة كتابة سلسلة مُراجَعة.
أخطاء متكررة
- ✗مقارنة الفروع بـ git diff بعد rebase — يخلط كل تغييرات الأساس الجديد.
الأسئلة الشائعة
A:
لا: يقارن commit بـ commit متجاهلًا التغييرات الآتية من الأساس الجديد.