จับตา Git 2.56 และ Git 3.0 ที่จะเปลี่ยนค่าเริ่มต้นเป็น SHA-256 และบังคับใช้ Rust ในการคอมไพล์
Looking forward to Git 2.56 — and 3.0
Jonathan Corbet เขียนบทวิเคราะห์ใน LWN.net เมื่อวันที่ 18 กันยายน 2026 ซึ่งกลายเป็นหนึ่งในหัวข้อที่ถูกพูดถึงมากที่สุดบน Hacker News ในสัปดาห์นี้ เนื้อหาแบ่งเป็นสองส่วน คือสิ่งที่กำลังจะมาใน Git 2.56 ปลายเดือนกันยายน และการเปลี่ยนแปลงครั้งใหญ่ที่รอใน Git 3.0
Git 2.56 มี commit ที่ไม่ใช่ merge มากกว่า 700 รายการ แต่จะยังไม่เปลี่ยนประสบการณ์ใช้งานของคนส่วนใหญ่อย่างมีนัยสำคัญ ของใหม่ที่น่าสนใจได้แก่คำสั่งทดลอง git history drop สำหรับลบ commit หนึ่งออกจากประวัติแล้ว replay commit ที่ตามมา (ยังใช้กับ merge commit ไม่ได้), git status ที่แนะนำ git pull เมื่อ branch ตามหลัง, คำสั่ง git refs พร้อม subcommand create/delete/update/rename, git branch --delete-merged สำหรับลบ branch ที่ merge เข้า remote tracking branch แล้ว และ git add --resolved ที่ stage เฉพาะไฟล์ที่แก้ conflict เสร็จพร้อมสแกนหา marker ที่ตกค้าง
ส่วนที่ "สั่นสะเทือน" จริง ๆ คือ Git 3.0 การเปลี่ยนแปลงสำหรับ repository ใหม่มีสี่ข้อหลัก คือเปลี่ยน hash เริ่มต้นจาก SHA-1 เป็น SHA-256 (ซึ่งรองรับแบบไม่ใช่ experimental มาตั้งแต่ 2.42 ปี 2023), เก็บ reference ในรูปแบบ reftable ที่เป็นไบนารี (มีมาตั้งแต่ 2.45 แต่ยังไม่เป็นค่าเริ่มต้น), ตั้งชื่อ branch แรกเป็น main และ Git จะรับเฉพาะ object ID ตัวพิมพ์เล็กเท่านั้นเพื่อแก้ปัญหาความกำกวมด้านความปลอดภัย
ข้อที่กระทบวงกว้างที่สุดคือการ build Git 3.0 จะต้องมี Rust compiler ซึ่งแปลว่าแพลตฟอร์มที่ Rust ยังไปไม่ถึงจะอัปเกรดไม่ได้ ส่วนเหตุผลของ reftable คือประสิทธิภาพใน repo ที่มี reference จำนวนมหาศาล เช่น repo ของ Android ที่มีกว่า 800,000 reference
ไทม์ไลน์ที่ปรับใหม่คือเวอร์ชัน 2.98 ในเดือนธันวาคม 2026 ตามด้วย 2.99 ซึ่งเป็น long-term-support release และ Git 3.0 ที่จะออกพร้อมกันในเดือนเมษายน 2027 ด้านความพร้อมของ ecosystem นั้น GitLab และ Forgejo รองรับ SHA-256 แล้ว ขณะที่สถานะของ GitHub ยังไม่ชัดเจน ส่วน libgit2 ยืนยันรองรับทั้ง reftable และ SHA-256 แล้ว และที่สำคัญคือ repository เดิมที่ใช้ SHA-1 และไม่มี reftable จะยังได้รับการรองรับเต็มรูปแบบต่อไป ไม่มีการบังคับย้าย