Git commands nản? TUI này cân hết, dev ơi!
TL;DR
Lazygit là một terminal UI (TUI) đơn giản nhưng cực kỳ mạnh mẽ, giúp bạn làm việc với Git nhanh hơn, trực quan hơn. Nó giải quyết nỗi đau khi phải gõ lệnh phức tạp hay chỉnh sửa file TODO thủ công cho những tác vụ như rebase, staging từng dòng.
Nói đơn giản: Giống như có một trợ lý riêng, lo hết mấy cái lặt vặt của Git để mình tập trung code.
Tổng quan
Lazygit là một công cụ mã nguồn mở được phát triển bởi Jesse Duffield, nhằm đơn giản hóa việc tương tác với Git thông qua một giao diện người dùng trực quan ngay trên terminal. Thay vì phải nhớ hàng tá lệnh và flag phức tạp, hay phải vật lộn với các file TODO khi rebase, Lazygit cung cấp một giao diện dạng bảng, cho phép bạn thực hiện các thao tác Git phổ biến chỉ bằng vài phím tắt.
Công cụ này sinh ra từ nỗi “ám ảnh” của dev với Git CLI: nó mạnh thiệt, nhưng sao mấy cái tác vụ như interactive rebase, staging từng dòng, hay bisect lại khó khăn, tốn thời gian đến vậy. Lazygit biến những thứ đó thành hành động trực quan, dễ thực hiện, giúp mình tiết kiệm thời gian và giảm thiểu sai sót. Nó hỗ trợ trên macOS, Linux và Windows, cài đặt cũng đơn giản qua các package manager phổ biến.
Xài vào việc gì?
Đang làm việc mà Git cứ báo conflict, phải stash liên tục
Chạy Lazygit, dùng tính năng Worktrees (w). Bạn có thể tạo nhiều worktree cho các nhánh khác nhau, chuyển đổi qua lại mà hông cần stash hay commit dở dang. Tiết kiệm cả đống thời gian và nỗi lo mất code đó.
Muốn rebase interactive mà sợ chỉnh file TODO lộn xộn
Mở Lazygit, chọn commit cần rebase, nhấn i. Bạn sẽ thấy giao diện trực quan để squash, fixup, drop, edit commit, hay di chuyển chúng lên xuống bằng ctrl+k/ctrl+j. Xong rồi thì m để continue. Hông còn cảnh gõ pick, squash bằng tay nữa.
Chỉ muốn stage một vài dòng code trong một file lớn
Mở Lazygit, vào file cần chỉnh, nhấn space trên từng dòng để stage. Hoặc dùng v để chọn một vùng. Nó trực quan hơn git add -p nhiều, hông cần phải vật lộn với từng hunk hay chỉnh patch file bằng tay giùm bạn.
Lỡ tay làm rối nùi repo, muốn quay lại trạng thái trước đó
Nhấn z để undo hành động cuối cùng. Lazygit dùng reflog nên bạn có thể hoàn tác các thao tác liên quan đến commit và branch. Cứ như có nút “Ctrl+Z” cho Git vậy đó, yên tâm hơn nhiều.
Các điểm chính
- Git CLI mạnh nhưng khó xài, Lazygit giải quyết đúng chỗ đau: Thay vì phải học thuộc lòng cả mớ lệnh phức tạp, Lazygit cung cấp một giao diện trực quan giúp mình thao tác Git dễ dàng. Điều này đặc biệt đúng với các tác vụ như rebase, cherry-pick, hay staging từng dòng. Nó hông phải là thay thế Git, mà là một lớp UI giúp mình xài Git hiệu quả hơn.
- Tiết kiệm thời gian đáng kể cho các tác vụ lặp lại: Những thao tác như interactive rebase, cherry-pick, hay quản lý stash, worktree có thể tốn rất nhiều thời gian nếu làm bằng CLI. Lazygit biến chúng thành vài cú click/phím, giúp mình tiết kiệm hàng giờ mỗi tuần.
- Giảm thiểu sai sót, tăng tự tin khi làm việc với Git: Giao diện trực quan giúp mình thấy rõ mình đang làm gì, tránh các lỗi thường gặp khi thao tác Git bằng lệnh. Tính năng undo cũng là một “phao cứu sinh” tuyệt vời.
- Hỗ trợ đầy đủ các tính năng nâng cao, hông chỉ là cơ bản: Từ
bisect,worktrees,custom patchesđếncommit graph,compare commits, Lazygit đều có đủ. Nó hông chỉ là “Git GUI” đơn giản mà là một công cụ mạnh mẽ cho dev chuyên nghiệp. - Tích hợp GitHub PRs giúp quản lý code tốt hơn: Lazygit có thể hiển thị trạng thái Pull Request của các branch trên GitHub (cần cài
gh CLI). Điều này giúp mình nắm bắt tình hình code review mà hông cần thoát terminal.
Workflow gợi ý
- “Dọn dẹp” code trước khi commit:
- Mở Lazygit (
lazygithoặclg). - Vào panel
Files, dùngspaceđể stage từng dòng/hunk cần commit. - Nhấn
cđể commit, viết message.
- Mở Lazygit (
- Rebase branch feature lên develop mới nhất:
- Vào panel
Branches, chọn branchdevelop, nhấnr(rebase). - Chọn branch
featurecủa mình. - Lazygit sẽ mở giao diện rebase interactive, mình có thể
squash,fixupcác commit cho gọn gàng. - Nhấn
mrồicontinueđể hoàn tất.
- Vào panel
- Tạo worktree mới để xử lý bug nóng:
- Đang ở branch
feature, có việc gấp cần fix bug ởmaster. - Vào panel
Branches, chọnmaster, nhấnwđể tạo worktree mới. - Lazygit sẽ tạo một thư mục mới với branch
masterở đó, mình có thể chuyển qua làm việc ngay mà hông ảnh hưởng đến branchfeaturehiện tại.
- Đang ở branch
Quick Start
- Làm ngay tuần này: Cài Lazygit (
brew install lazygithoặc tải binary) và tập dùng nó cho các tác vụgit add -p(stage từng dòng) vàgit rebase -i(interactive rebase). - Bước tiếp: Thử dùng Lazygit để
cherry-pickcommit,amendcommit cũ, hoặc quản lýworktrees. - Thói quen duy trì: Thay thế hoàn toàn
git status,git diff,git add,git commitbằng Lazygit. Dùng nó làm giao diện chính cho mọi thứ liên quan đến Git.
FAQ
Lazygit có thay thế được Git CLI hông? Hông. Lazygit là một giao diện trực quan cho Git, nó chạy các lệnh Git ở dưới. Mình vẫn cần hiểu Git hoạt động ra sao, nhưng Lazygit giúp mình thao tác dễ hơn.
Nó có hỗ trợ Git Flow hay các workflow khác hông? Có. Lazygit hỗ trợ Git Flow và có thể tùy chỉnh để phù hợp với workflow riêng của bạn thông qua custom commands.
Mấy cái màu trên commit graph có ý nghĩa gì? Màu sắc trên commit graph tương ứng với các tác giả commit khác nhau. Khi bạn di chuyển trên graph, các commit cha của commit đang chọn sẽ được highlight.
Có cần cài thêm gì để dùng tính năng GitHub PRs hông?
Cần cài gh CLI (GitHub CLI) và chạy gh auth login một lần để Lazygit có quyền truy cập GitHub. Sau đó nó sẽ tự động hiển thị trạng thái PR.
Đang tải nội dung...