git rerere
الـ patches وإعادة الكتابة
إعادة استخدام حلول التعارض المسجّلة
تتذكّر ميزة 'git rerere' (reuse recorded resolution) كيف حللت تعارضًا وتطبّق الحل نفسه تلقائيًا في المرة القادمة التي يظهر فيها التعارض نفسه — حين تعيد الـ rebase أو تعيد دمج فرع أو تكرّر دمجًا. فعّلها بـ rerere.enabled؛ فيسجّل git التعارضات والحلول بنفسه. وتبقى أنت من يتحقق من النتيجة وينفّذ git add.
الصيغة
git rerere [clear | forget <path> | diff | status | remaining | gc][ ] اختياري| أو<arg> قيمة تُستبدل... قابل للتكرار--flag خيار
أمثلة
تفعيله
git config --global rerere.enabled trueمن الآن تُتذكَّر التعارضات والحلول.
تعارضات قيد التسجيل
git rerere statusالملفات التي يُسجَّل تعارضها.
نسيان حل سيئ
git rerere forget app.jsتسجيله من جديد في المرة القادمة.
أمثلة على سير العمل
1
git config rerere.enabled trueمرة واحدة
2
git merge main … resolve … git reset --hard HEAD~1عمليات الدمج التجريبية تعلّم rerere
3
git merge mainالدمج الحقيقي يعيد استخدام إجاباتك
حل المشكلات
حُلّ تعارض بشكل خاطئ
السبب: سُجِّل حل سيئ
git rerere forget <file>، ثم حلّ مجددًا وسجّل
نصائح وأخطاء شائعة
أفضل الممارسات
- ✓فعّله عامًّا إن كنت تنفّذ rebase كثيرًا.
- ✓راجع دائمًا الملفات التي حلّها rerere قبل git add.
أخطاء متكررة
- ✗تسجيل حل خاطئ وإعادة تطبيقه بصمت — تحقّق من الملفات بعد الدمج واستخدم rerere forget.
الأسئلة الشائعة
A:
ليس افتراضيًا: اضبط rerere.autoUpdate على true لتجهيز الملفات المحلولة تلقائيًا.