Làm Chủ Git Workflow với Lazygit

· 4 min read

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:

  1. Status: Trạng thái repo, branch hiện tại.
  2. Files: File đã thay đổi (staged/unstaged).
  3. Local Branches: Danh sách branch.
  4. Commits: Lịch sử commit của branch hiện tại.
  5. Stash: Các thay đổi đã stash.
  6. Main/Diff View: Các thay đổi thực tế.

Điều Hướng

  • Sử dụng Arrow Keys hoặc h/j/k/l (kiểu Vim) để điều hướng giữa các panel và item.
  • [] để 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

  1. Điều hướng đến panel Files.
  2. Nhấn Space trên file để toggle Staged/Unstaged.
  3. Nhấn a để stage Tất cả file.
  4. Khi đã staged, nhấn c để commit.
  5. Một dialog xuất hiện. Gõ message của bạn và nhấn Enter.

2. Branching và Merging

  1. Điều hướng đến panel Branches.
  2. Nhấn n để tạo branch Mới.
  3. Nhấn Space để Checkout một branch.
  4. Để 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:

  1. Đi đến panel Files.
  2. Chọn file bị conflict.
  3. Bạn sẽ thấy các conflict trong main view.
  4. Nhấn Space để chọn thay đổi bạn muốn (Local, Remote, hoặc Both).
  5. Tiếp tục rebase/merge với Shift+R hoặ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?

  1. Đi đến panel Commits.
  2. Điều hướng đến commit trước commit bạn muốn thay đổi.
  3. Nhấn e để Edit commit (hoặc s để squash, d để delete).
  4. 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.

Bình luận