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.