Những ai từng "vật lộn" với Git, đặc biệt là khi phải xử lý nhiều nhánh và commit song song, sẽ hiểu nỗi đau khi chạy lệnh rebase -i. Chỉ cần một sai sót nhỏ, toàn bộ cây thư mục có thể rơi vào trạng thái nửa vời, hỏng hóc. Trong khi đó, công cụ thay thế jj được ca ngợi là giải pháp nhưng lại yêu cầu thay đổi toàn bộ quy trình. Giờ đây, Git chính thức có câu trả lời: lệnh git history thử nghiệm.
Lệnh 'git history' giải quyết vấn đề gì?
Ra mắt qua hai bản phát hành 2.54 và 2.55, git history cung cấp ba lệnh con: fixup, reword và split. Điểm mạnh nhất là tính atomic: nó không bao giờ để cây thư mục ở trạng thái lỗi. Ví dụ, lệnh fixup cho phép bạn sửa một commit cũ, tự động rebase tất cả các nhánh chứa commit đó, một tính năng mà ngay cả rebase --update-refs cũng không làm được. Tính năng này vượt trội so với việc phải chạy git commit --fixup rồi autosquash thủ công.
Tuy nhiên, git history không thể xử lý các merge commit, một hạn chế đáng kể với các dự án phức tạp. Và khác với jj (vốn coi conflict là "công dân hạng nhất"), git history từ chối mọi thao tác có thể gây ra conflict. Dù vậy, tài liệu chính thức của dự án công nghệ này để ngỏ khả năng nâng cấp trong tương lai, khi Git học cách xử lý conflict như jj.
Đối với lập trình viên Việt Nam, đây là tin vui vì họ có thể thử nghiệm ngay mà không cần cài thêm phần mềm mới. Dù còn sơ khai, git history hứa hẹn giảm tải đáng kể áp lực quản lý mã nguồn, giúp tập trung vào logic thay vì chiến đấu với dòng lệnh.






