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.

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 | Ở khung | Tác dụng |
|---|---|---|
space | Files | Stage/unstage file |
a | Files | Stage/unstage tất cả |
enter | Files | Vào file để stage từng dòng hoặc từng hunk bằng space |
c | Files | Commit |
P / p | Mọi khung | Push / pull |
n | Branches | Tạo nhánh mới |
z / shift+z | Mọi khung | Undo / 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, xemdocs/Config.mdtrong 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.pagingcủa cấu hình. - Thêm alias
alias lg=lazygitcho 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
- jesseduffield/lazygit — jesseduffield (GitHub)