Làm Chủ Git Workflow với Lazygit
Git rất mạnh mẽ, nhưng CLI của nó có thể dài dòng và đôi khi đáng sợ với các thao tác phức tạp. GUI client thì tốt, nhưng chúng thường yêu cầu chuyển đổi context khỏi terminal.
Đây là lúc Lazygit xuất hiện: một terminal UI đơn giản cho các lệnh git. Nó nhanh, điều khiển bằng bàn phím, và cực kỳ mạnh mẽ.
Lazygit Là Gì?
Lazygit là một terminal user interface (TUI) cho Git, được viết bằng Go. Nó biến đồ thị phức tạp của git commit, branch, và stash thành giao diện tương tác có thể điều hướng trực tiếp trong terminal của bạn.
Cài Đặt
macOS
Nếu bạn sử dụng Homebrew (và bạn nên dùng):
brew install lazygit
Linux
Ubuntu / Debian:
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
Arch Linux:
sudo pacman -S lazygit
Windows
Sử dụng Scoop:
scoop install lazygit
Sử dụng Chocolatey:
choco install lazygit
Bắt Đầu
Mở terminal trong git repository và đơn giản gõ:
lazygit
Bạn sẽ thấy giao diện được chia thành các panel:
- Status: Trạng thái repo, branch hiện tại.
- Files: File đã thay đổi (staged/unstaged).
- Local Branches: Danh sách branch.
- Commits: Lịch sử commit của branch hiện tại.
- Stash: Các thay đổi đã stash.
- Main/Diff View: Các thay đổi thực tế.
Điều Hướng
- Sử dụng
Arrow Keyshoặch/j/k/l(kiểu Vim) để điều hướng giữa các panel và item. [và]để chuyển đổi giữa các tab (ví dụ, trong panel Files).qđể thoát.
Workflow Cốt Lõi
1. Staging và Committing
- Điều hướng đến panel Files.
- Nhấn
Spacetrên file để toggle Staged/Unstaged. - Nhấn
ađể stage Tất cả file. - Khi đã staged, nhấn
cđể commit. - Một dialog xuất hiện. Gõ message của bạn và nhấn
Enter.
2. Branching và Merging
- Điều hướng đến panel Branches.
- Nhấn
nđể tạo branch Mới. - Nhấn
Spaceđể Checkout một branch. - Để merge một branch vào branch hiện tại, highlight branch kia và nhấn
M(shift+m) để xem các tùy chọn merge.
3. Giải Quyết Merge Conflict
Lazygit tỏa sáng ở đây. Khi conflict xảy ra:
- Đi đến panel Files.
- Chọn file bị conflict.
- Bạn sẽ thấy các conflict trong main view.
- Nhấn
Spaceđể chọn thay đổi bạn muốn (Local, Remote, hoặc Both). - Tiếp tục rebase/merge với
Shift+Rhoặc prompt tương đương.
4. Interactive Rebase (Tính Năng Ma Thuật)
Muốn sửa lỗi chính tả trong commit 3 bước trước?
- Đi đến panel Commits.
- Điều hướng đến commit trước commit bạn muốn thay đổi.
- Nhấn
eđể Edit commit (hoặcsđể squash,dđể delete). - Lazygit xử lý logic interactive rebase cho bạn.
Cấu Hình Tùy Chỉnh
Lazygit có thể cấu hình cao. File config thường nằm tại:
- Linux/Mac:
~/.config/lazygit/config.yml - Windows:
%APPDATA%\lazygit\config.yml
Config ví dụ để đơn giản hóa UI:
gui:
# Sử dụng chuột để click? Chắc chắn.
mouseEvents: true
# Hiển thị command log để minh bạch
showCommandLog: true
git:
paging:
colorArg: always
pager: delta --dark --paging=never
Kết Luận
Lazygit là cầu nối giữa tốc độ của CLI và khả năng khám phá của GUI. Một khi bạn xây dựng muscle memory cho Space (stage), c (commit), và P (push), bạn sẽ thấy mình di chuyển nhanh hơn đáng kể so với sử dụng raw git command hoặc desktop app nặng.