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 لتجهيز الملفات المحلولة تلقائيًا.