git merge-tree

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

حساب دمج دون لمس مجلد العمل


ينفّذ الأمر 'git merge-tree --write-tree' دمجًا كاملًا في الذاكرة: يطبع معرّف الشجرة المدموجة، وعند وجود تعارضات يطبع الملفات المتعارضة والرسائل — دون تغيير ملفاتك أو منطقة التجهيز أو أي فرع. يخرج بالرمز 1 عند التعارض، ما يجعله مثاليًا للسكربتات والخوادم التي تحتاج معرفة ما إذا كان فرعان سيندمجان بنظافة.

الصيغة

git merge-tree --write-tree [--name-only] <branch1> <branch2>
[ ] اختياري| أو<arg> قيمة تُستبدل... قابل للتكرار--flag خيار

أمثلة

اختبار دمج

git merge-tree --write-tree main feature

نظيف: يطبع معرّف شجرة؛ تعارضات: رمز الخروج 1.


الملفات المتعارضة فقط

git merge-tree --write-tree --name-only main feature

أسماء الملفات بدل المراحل.

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

1
git merge-tree --write-tree main feature || echo "conflicts"

رمز الخروج 1 يعني وجود تعارضات

حل المشكلات

usage: git merge-tree … (old mode output)

السبب: إصدارات Git القديمة لا تملك إلا الوضع البسيط

حدّث Git (يحتاج --write-tree الإصدار 2.38 فأحدث)

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

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

  • ✓استخدم رمز الخروج في السكربتات: 0 نظيف، 1 تعارضات.

أخطاء متكررة

  • ✗توقّع commit دمج — ‏merge-tree يحسب النتيجة فقط.

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

A:

الشجرة التي سينتجها الدمج؛ يمكنك تسجيلها بـ git commit-tree.