Nâng cấp Git Diff với Delta: Xem Code Side-by-Side và Highlight Cực Đẹp

Git tutorial - IT technology blog
Git tutorial - IT technology blog

Khi Git Diff mặc định là một “cực hình”

2 giờ sáng, server production gặp sự cố. Bạn cần kiểm tra gấp những thay đổi trong file cấu hình bằng lệnh git diff. Thay vì một giao diện rõ ràng, màn hình Terminal lại hiện ra một “rừng” chữ trắng xóa xen lẫn vài dòng xanh đỏ nhạt nhẽo. Trong cơn buồn ngủ, việc phân biệt giữa một dấu phẩy đúng và một dấu chấm phẩy sai trở nên khó khăn hơn bao giờ hết.

Tôi từng mất gần 30 phút chỉ để tìm ra một lỗi typo trong file nginx.conf vì giao diện diff mặc định quá khó nhìn. Sau lần đó, tôi quyết định phải tìm giải pháp thay thế. Đó là lúc tôi biết đến Delta.

Về cơ bản, Delta (hay git-delta) là một công cụ giúp hiện đại hóa cách chúng ta đọc code thay đổi. Nó mang trải nghiệm review chuyên nghiệp của GitHub hay VS Code vào thẳng Terminal của bạn.

Cài đặt nhanh trong 5 phút

Thay vì ngồi đọc hướng dẫn dài dòng, hãy cài đặt và cảm nhận sự khác biệt ngay lập tức.

1. Cài đặt Delta

Với người dùng macOS, Homebrew là lựa chọn nhanh nhất:

brew install git-delta

Nếu dùng Ubuntu hoặc Debian, bạn có thể tải file .deb từ GitHub releases. Với các tín đồ của Rust, hãy dùng cargo:

cargo install git-delta

2. Cấu hình .gitconfig

Để Delta hoạt động, bạn cần khai báo nó trong file ~/.gitconfig. Hãy dán đoạn cấu hình tối ưu dưới đây:

[core]
    pager = delta

[interactive]
    diffFilter = delta --color-only

[delta]
    navigate = true    # Dùng n và N để nhảy giữa các file
    light = false      # Chỉnh thành true nếu bạn dùng terminal nền sáng
    side-by-side = true # Chế độ xem 2 cột
    line-numbers = true # Hiện số dòng

[merge]
    conflictstyle = diff3

[diff]
    colorMoved = default

Sau khi lưu, hãy thử gõ git diff. Bạn sẽ thấy một giao diện hoàn toàn mới.

Tại sao Delta xứng đáng có mặt trong bộ công cụ của bạn?

Nhiều người ngại cài thêm tool bên thứ ba, nhưng Delta thực sự giải quyết được những nỗi đau cụ thể.

Syntax Highlighting thông minh

Git mặc định chỉ tô màu cả dòng. Ngược lại, Delta sử dụng bộ engine của thư viện bat để hiểu cú pháp của hơn 100 ngôn ngữ. Nếu bạn thay đổi một thuộc tính CSS hoặc một logic nhỏ trong Java, Delta sẽ highlight chính xác từ khóa đó. Mắt bạn sẽ bắt được thay đổi chỉ trong 0.5 giây thay vì phải đọc quét từng ký tự.

Chế độ Side-by-side (So sánh song song)

Đây là tính năng đáng giá nhất trên các màn hình lớn (từ 24 inch trở lên). Thay vì dòng cũ nằm trên dòng mới, Delta chia đôi màn hình để bạn đối chiếu. Cách trình bày này giúp việc nhận diện logic cũ-mới trở nên trực quan, tương tự như khi bạn review Pull Request trên GitHub.

Nâng cấp cả Git Log và Git Blame

Delta không chỉ giới hạn ở lệnh diff. Khi cấu hình core.pager, mọi lệnh hiển thị nội dung đều được hưởng lợi:

  • git log -p: Biến lịch sử commit thành một danh sách các bản diff đẹp mắt.
  • git blame: Phân biệt các khoảng thời gian commit bằng các dải màu khác nhau, giúp bạn biết ngay ai là người vừa sửa code cách đây 2 giờ hay 2 tháng.

Tùy chỉnh theo phong cách cá nhân

Khi đã quen, bạn có thể biến Delta thành của riêng mình với các theme màu sắc.

Sử dụng Theme có sẵn

Gõ lệnh delta --list-syntax-themes để xem danh sách. Tôi thường dùng theme Dracula hoặc Monokai Extended để giảm mỏi mắt khi làm việc đêm. Thêm dòng này vào .gitconfig để áp dụng:

[delta]
    syntax-theme = Dracula

Lưu ý cho màn hình nhỏ

Chế độ side-by-side có thể hơi chật chội trên laptop 13 inch. Nếu cảm thấy khó nhìn, bạn có thể giới hạn độ rộng hoặc tạm thời tắt nó bằng flag --no-pager khi cần copy code nhanh:

git --no-pager diff

Bài học thực tế: Đừng quá tin vào màu sắc

Dù công cụ rất mạnh, nhưng màu sắc đôi khi khiến chúng ta chủ quan. Có lần tôi mải nhìn vào các khối màu xanh mướt của Delta mà quên kiểm tra các dòng xung quanh (context lines). Kết quả là tôi merge một đoạn code đúng logic nhưng đặt sai vị trí hàm. Hãy luôn dùng Delta để hỗ trợ việc đọc, nhưng đừng quên kiểm tra lại cấu trúc file tổng thể trước khi nhấn Enter.

Lời kết

Cài đặt Delta là một thay đổi nhỏ nhưng mang lại hiệu quả lớn cho năng suất hàng ngày. Nó giúp việc review code bớt căng thẳng và chuyên nghiệp hơn. Nếu bạn dành hơn 2 tiếng mỗi ngày để làm việc với Git, Delta chắc chắn là một khoản đầu tư xứng đáng.

Share: