VietTechiesHIỂU CÔNG NGHỆ. MỞ GÓC NHÌN.
☰ Chuyên mục

Git 2.56 tăng độ an toàn khi stage xung đột và đẩy nhanh bảo trì kho mã

29/09/2026 · VietTechies · Biên tập

Các khối dữ liệu đan xen được tách ra và nén thành một chồng nhỏ hơn, ngay ngắn trên nền làm mờ nhẹ.
Ảnh minh họa do AI tạo.

Git 2.56.0 đã được phát hành với các thay đổi giúp quá trình xử lý xung đột an toàn hơn và việc bảo trì kho mã có khả năng mở rộng tốt hơn. Bản phát hành bổ sung chế độ stage riêng cho các xung đột đã giải quyết, rút ngắn một số lượt tìm kiếm merge base và gỡ bỏ hai hạn chế từng cản trở việc dùng repack path-walk tiết kiệm dung lượng trên máy chủ kho mã.

Stage xung đột an toàn hơn

Chế độ mới git add –resolved chỉ stage những đường dẫn hiện được đánh dấu là chưa hợp nhất. Trước khi thay đổi index, lệnh kiểm tra các tệp thông thường đã chọn để tìm dấu xung đột còn sót lại; nếu phát hiện bất kỳ dấu nào, Git sẽ không stage tệp nào trong số đó. Những thay đổi được theo dõi nhưng không liên quan vẫn được giữ nguyên, qua đó giảm nguy cơ vô tình đưa công việc cục bộ vào commit khi dùng các lệnh rộng hơn như git add -u hoặc git add -A.

Lập trình viên có thể cung cấp pathspec để thu hẹp phạm vi thao tác. Các trường hợp xóa đã giải quyết và xung đột nhị phân vẫn có thể được stage vì không chứa dấu xung đột dạng văn bản. Chế độ mới không thể kết hợp với các chế độ update hoặc all có phạm vi rộng hơn.

Kết thúc tìm merge base sớm hơn

Git nay theo dõi xem hàng đợi duyệt merge base còn commit nào chỉ thuộc riêng từng phía hay không. Khi commit riêng của một phía đã cạn, quá trình tìm kiếm có thể dừng vì không thể xuất hiện thêm điểm gặp chung, đồng thời vẫn hỗ trợ các lịch sử có nhiều merge base hợp lệ.

GitHub ghi nhận mức cải thiện đáng kể trên các kho mã được đánh giá. Trong một trường hợp monorepo, thời gian giảm từ 0,68 giây xuống 0,01 giây. Các đánh giá trong môi trường production cho thấy nhiều thao tác nhanh hơn khoảng 70 lần ở một monorepo lớn và cải thiện trung bình khoảng 20 lần ở một monorepo khác. Với một trường hợp trên Linux kernel, số bước duyệt giảm từ 167.441 xuống 3.887.

Repack phía máy chủ nhỏ hơn

Repack path-walk nhóm các object theo vị trí trong cây để tìm quan hệ delta tốt hơn. Trong phép đo Fluent UI của GitHub, phương pháp này tạo pack 164,4 MB, so với 558,5 MB của một lần repack thông thường có bitmap, tương đương mức giảm khoảng 71%. Git 2.56 giúp cách làm này tương thích với reachability bitmap và delta island, loại bỏ hai rào cản đối với các dịch vụ lưu trữ kho mã.

Tính năng vẫn phải được chủ động bật. Đơn vị vận hành máy chủ giờ có thể đánh giá lợi ích lưu trữ mà không phải từ bỏ khả năng liệt kê object có bitmap hỗ trợ hoặc các quy tắc cô lập do delta island áp dụng. Tuy vậy, Git không bật repack path-walk theo mặc định.

Các thay đổi khác trong quy trình làm việc

Những bổ sung khác gồm lệnh thử nghiệm git history drop, khả năng xóa hàng loạt các nhánh đã merge, tùy chọn tự động dọn dẹp cho git bisect run và chế độ –linearize của lệnh thử nghiệm git replay. Partial clone cũng có thể chủ động loại bỏ các blob lớn có thể khôi phục bằng repack có bộ lọc, dù cơ chế hiện chỉ hỗ trợ bộ lọc blob:limit và yêu cầu một promisor remote.

Git 2.56 còn cải thiện khả năng theo dõi đổi tên của git log –follow trong các lịch sử phi tuyến tính và xử lý một số vấn đề về khả năng mở rộng. Các số liệu được công bố gồm một thao tác diff giới hạn theo đường dẫn trên bản checkout Chromium giảm từ khoảng tám phút xuống 0,07 giây, còn các bài kiểm tra reftable tombstone giảm từ khoảng 13 giây xuống 0,2 giây.

Ảnh minh họa do AI tạo, không phải ảnh tư liệu.

Nguồn: Highlights from Git 2.56