أصدر مشروع Git المفتوح المصدر الإصدار 2.56.0 في 28 سبتمبر 2026، بعد مساهمات من أكثر من 104 أشخاص، بينهم 39 مساهماً جديداً. ويركز الإصدار على تقليل مخاطر أخطاء الدمج، وتسريع العمليات التي تعتمد عليها المستودعات الكبيرة وخدمات استضافة الشيفرة.
تهيئة التعارضات دون لمس التعديلات الأخرى
يضيف Git 2.56 وضع git add --resolved لمعالجة الملفات التي كانت في حالة تعارض فقط. بخلاف أوامر مثل git add -u، لا يحاول الوضع الجديد إضافة كل الملفات المتتبعة المعدلة، ما يحمي التعديلات المحلية غير المرتبطة بعملية الدمج.
قبل التهيئة، يفحص Git الملفات النصية غير المدمجة بحثاً عن بقايا علامات التعارض. وإذا وجد علامة في أي ملف محدد، يترك الفهرس دون تغيير بدلاً من تهيئة جزء من العملية. ويمكن تقييد العملية باستخدام pathspec، بينما تُعالج عمليات الحذف والتعارضات الثنائية بصورة طبيعية لأنها لا تحتوي على علامات نصية.
تسريع العثور على قواعد الدمج
حسّن الإصدار خوارزمية البحث عن أفضل الأسلاف المشتركة بين الالتزامات، وهي عملية تستخدمها عمليات الدمج، والفروقات ذات النقاط الثلاث، ومقارنات طلبات السحب. أصبح Git يتوقف عندما ينفد أحد الجانبين الحصريين في طابور البحث، إذ لا يمكن عندها ظهور قاعدة دمج جديدة.
أدى التغيير في حالة مستودع أحادي كبير إلى خفض زمن العملية من 0.68 ثانية إلى 0.01 ثانية، وسجلت تقييمات إنتاجية على مستودعين كبيرين تحسناً بلغ نحو 70 مرة في أحدهما ومتوسطاً يقارب 20 مرة في الآخر. كما انخفضت عملية git merge-base --all v4.8 v4.9 في حالة مرتبطة بنواة Linux من 167,441 خطوة و0.29 ثانية إلى 3,887 خطوة و0.01 ثانية.
إعادة حزم أصغر لخدمات الاستضافة
أزال Git 2.56 عائقين أمام استخدام إعادة الحزم المعتمدة على المسار، وهي تقنية تجمع كائنات الملفات المتقاربة في شجرة المستودع لتحسين ضغطها. في اختبار على نسخة من مستودع Fluent UI، انخفض حجم حزمة التخزين من 558.5 ميغابايت باستخدام إعادة الحزم التقليدية إلى 164.4 ميغابايت باستخدام --path-walk، أي بنحو 71%.
أصبح هذا الأسلوب متوافقاً مع خرائط قابلية الوصول وجزر الفروقات، ما يتيح لخدمات الاستضافة تقييم وفورات التخزين مع الحفاظ على آليات الخدمة والعزل الحالية. لكنه لا يُفعّل افتراضياً، ولا يمثل تحولاً تلقائياً لكل المستودعات.
أدوات إضافية وتحسينات عملية
- أضاف الأمر التجريبي git history drop حذف التزام وإعادة تشغيل الالتزامات اللاحقة عليه، مع استمرار القيود المتعلقة بالتعارضات والالتزامات الجذرية وعمليات الدمج.
- يوحد الأمر git refs عمليات إنشاء المراجع وتحديثها وحذفها وإعادة تسميتها، مع دعم حماية compare-and-swap عبر القيم القديمة.
- يتيح git branch --delete-merged حذف الفروع المدمجة بكميات كبيرة وفق فروع التتبع، مع خيار المعاينة وحماية الفروع المحددة.
- يضيف git bisect run --reset-when-found إعادة الحالة تلقائياً بعد العثور على الالتزام المسبب للعطل.
- يمكن للأمر git repack التخلص يدوياً من الكائنات الثنائية الكبيرة المسترجعة في النسخ الجزئية، مع إبقائها قابلة للجلب من الخادم الموثوق عند الحاجة.
- يحسن git log --follow تتبع إعادة تسمية المسارات عبر السجل غير الخطي، كما يحسن عرض الرسوم البيانية ذات الجذور المتعددة.
لماذا يهم هذا الإصدار؟
القيمة العملية في Git 2.56 لا تقتصر على أوامر جديدة؛ فالإصدار يعالج نقاط احتكاك مباشرة في عمل المطورين ومديري المستودعات. وضع git add --resolved يقلل احتمال تضمين تغييرات غير مقصودة، بينما تستهدف تحسينات قواعد الدمج وإعادة الحزم تكاليف الزمن والتخزين في المستودعات الكبيرة. ومع ذلك، تظل بعض الأدوات تجريبية أو يدوية، ولا سيما أوامر إدارة السجل وتنظيف الكائنات في النسخ الجزئية، لذلك لا ينبغي التعامل معها كسياسات تلقائية أو بدائل غير مشروطة لسير العمل القائم.
يشير الإصدار إلى أن مشروع Git يواصل تحسين الأداء على مستوى الخوارزميات والهياكل الداخلية، وليس فقط إضافة أوامر للمستخدم النهائي. وتوصي تفاصيل الإصدار بالرجوع إلى ملاحظات Git 2.56 الكاملة لمراجعة بقية التغييرات قبل اعتماد الميزات التجريبية في بيئات الإنتاج.
كيف أعددنا هذا الخبر؟
اعتمد الخبر على المصدر الأصلي الموضح أعلاه. قد نستخدم أدوات آلية للمساعدة في الاستخراج والتصنيف والصياغة،
لكن النشر يخضع لقواعد تمنع المحتوى المكرر والقصير أو الروتيني منخفض القيمة.
اقرأ سياستنا التحريرية.