Tools

lazygit: giao diện Git trong terminal, stage từng dòng và rebase bằng một phím

Tóm tắt

lazygit cho thấy file, nhánh, commit, stash trong một màn hình. space để stage, c để commit, i để interactive rebase với s/f/d, shift+c và shift+v để cherry-pick, z để undo.

Git mạnh nhưng giao diện dòng lệnh làm những việc thường ngày trở nên nặng nề: stage từng dòng, sửa commit cũ, squash vài commit trước khi mở PR, cherry-pick sang nhánh khác. Mỗi việc là một chuỗi lệnh và cờ cần nhớ, và sai một bước là phải tra git reflog. lazygit là giao diện dạng bảng ngay trong terminal: thấy cùng lúc file thay đổi, nhánh, commit, stash, và làm mọi thao tác trên bằng một phím.

Trang GitHub của jesseduffield/lazygit
Trang GitHub của jesseduffield/lazygit (ảnh chụp tháng 11/2026)

GitHub: https://github.com/jesseduffield/lazygit · khoảng 84 nghìn sao · Go · MIT

Cài đặt

brew install lazygit                                  # macOS
winget install -e --id=JesseDuffield.lazygit          # Windows
go install github.com/jesseduffield/lazygit@latest    # có Go

cd my-repo && lazygit

Màn hình chia thành các khung: Status, Files, Branches, Commits, Stash, và khung bên phải hiện diff của mục đang chọn. Dùng phím số 1–5 hoặc mũi tên trái/phải để chuyển khung. Nhấn ? ở bất kỳ đâu để xem phím tắt của khung đó.

Thao tác hằng ngày

PhímỞ khungTác dụng
spaceFilesStage/unstage file
aFilesStage/unstage tất cả
enterFilesVào file để stage từng dòng hoặc từng hunk bằng space
cFilesCommit
P / pMọi khungPush / pull
nBranchesTạo nhánh mới
z / shift+zMọi khungUndo / redo thao tác gần nhất

Những việc lazygit làm tốt hơn hẳn dòng lệnh

Interactive rebase

Ở khung Commits, nhấn i để bắt đầu interactive rebase, rồi đánh dấu từng commit: s squash, f fixup, d drop, e edit, ctrl+k/ctrl+j để di chuyển lên/xuống. Bạn cũng có thể nhấn thẳng s trên một commit để squash ngay mà không cần mở rebase.

Cherry-pick

Nhấn shift+c trên commit để sao chép, chuyển sang nhánh đích, nhấn shift+v để dán (cherry-pick).

Bisect

Ở khung Commits, nhấn b để đánh dấu commit tốt/xấu và bắt đầu git bisect tìm commit gây lỗi.

Undo an toàn

z hoàn tác dựa trên reflog. Lưu ý: chỉ hoàn tác được thay đổi trên commit và nhánh, không hoàn tác được thay đổi trong working tree hay stash.

Tuỳ chỉnh

  • Cấu hình nằm trong file config.yml (vị trí tuỳ hệ điều hành, xem docs/Config.md trong repo): đổi theme, phím tắt, thêm lệnh tuỳ chỉnh.
  • Dùng delta để hiện diff đẹp hơn: đặt pager trong mục git.paging của cấu hình.
  • Thêm alias alias lg=lazygit cho nhanh.

Lưu ý

  • lazygit chạy lệnh git thật; force push hay drop commit vẫn có hậu quả như trên dòng lệnh. Đọc kỹ hộp thoại xác nhận.
  • Vẫn nên hiểu Git cơ bản: công cụ giúp làm nhanh, không thay thế hiểu biết khi gặp conflict phức tạp.

Áp dụng thế nào?

  • Dev: Dùng lazygit để dọn lịch sử commit trước khi mở PR (squash các commit "fix typo"), và để stage từng phần thay đổi thành các commit có ý nghĩa.
  • Tech Lead: Khi team yêu cầu lịch sử sạch, lazygit giảm rào cản interactive rebase cho người chưa quen; dùng nó trong buổi hướng dẫn Git cho thành viên mới.
  • PM: Lịch sử commit gọn giúp đọc changelog và truy nguyên lỗi dễ hơn; đây là công cụ miễn phí hỗ trợ việc đó.

Nguồn & tham khảo

  1. jesseduffield/lazygit — jesseduffield (GitHub)