Git 3.0 يقترب: SHA-256 افتراضيًا، وRust شرط إلزامي لبناء Git نفسه
أكبر تغيير في الإصدار لا يظهر في الأوامر اليومية، بل في بيئات البناء والسكريبتات القديمة، وكلها تمس المستودعات الجديدة فقط.
صدر Git 2.56-rc0 في 11 سبتمبر 2026، ومن المتوقع أن يصدر Git 3.0 قرب نهاية العام. وتحدد وثيقة كسر التوافق الرسمية على git-scm.com التغييرات القادمة، وأبرزها أربعة.
الأول أن المستودعات الجديدة ستستخدم خوارزمية SHA-256 بدلًا من SHA-1 لتعريف الكائنات. والسبب ليس شكليًا، فقد كُسرت SHA-1 عمليًا أكثر من مرة: SHAppening في 2015، وSHAttered في 2017، وShambles في 2020.
الثاني أن تخزين الـ references، أي أسماء الفروع والوسوم، سيعتمد صيغة reftable بدلًا من ملف مستقل لكل reference. وسيظهر الفرق أكثر في المستودعات التي تضم آلاف الفروع.
الثالث أن الفرع الافتراضي سيصبح main.
والرابع هو الأوسع أثرًا في بيئات الـ CI: بناء Git نفسه سيتطلب Rust إلزاميًا، مع إزالة الخيار الذي كان يسمح بتعطيل ذلك.
وهناك تغيير أصغر يسهل تجاوزه. سيصبح إعداد safe.bareRepository بقيمة explicit افتراضيًا، أي أن Git سيرفض العمل على bare repository يعثر عليه تلقائيًا أثناء تنقله في شجرة الملفات. وهو إجراء دفاعي ضد نوع حقيقي من الهجمات، لكنه قد يكسر سكريبتات تعمل منذ سنوات.
وكل هذه التغييرات تخص المستودعات الجديدة فقط، أما المستودعات القائمة فتستمر كما هي.
ويبقى شرط Rust موضع نقاش. فمن جهة، يُقدَّم كطريق لكود أكثر أمانًا في أداة يعتمد عليها العالم كله. ومن جهة أخرى، يضيف تبعية جديدة إلى كل بيئة تبني Git من المصدر.