Cảnh tượng quen thuộc: Khi Terminal và Browser ‘lệch pha’
Nếu là một developer, chắc hẳn bạn không lạ gì quy trình này: Gõ git push xong, bạn phải Alt + Tab sang Chrome. Tiếp theo là nhấn F5, chờ repo load, rồi mới click được nút “Compare & pull request”. Cuối cùng là gõ tiêu đề và mô tả trên giao diện web.
Nghe thì có vẻ đơn giản. Tuy nhiên, khi dự án vào giai đoạn nước rút với hàng chục PR mỗi ngày, việc nhảy qua nhảy lại giữa trình duyệt và Terminal cực kỳ gây ức chế. Mỗi lần chuyển ngữ cảnh (context switching), não bộ mất khoảng 60-90 giây để lấy lại sự tập trung. Những tab YouTube hay Facebook đang mở sẵn trên trình duyệt chỉ chực chờ làm bạn xao nhãng.
Tôi từng lỡ tay merge nhầm một branch chưa test chỉ vì mở quá nhiều tab có giao diện giống hệt nhau. Sau vố đau đó, tôi quyết định đưa toàn bộ quy trình GitHub về lại nơi nó nên thuộc về: Terminal.
Tại sao giao diện Web đôi khi lại là ‘gánh nặng’?
Git rất giỏi quản lý code, nhưng GitHub lại là một nền tảng cộng tác phức tạp với Issue, PR và Action. Dù giao diện web của GitHub rất đẹp, nó vẫn tồn tại những rào cản cố hữu:
- Tốn quá nhiều click: Để tìm đúng một Issue cũ, bạn có khi phải click qua 3-4 tầng menu.
- Độ trễ khó chịu: Với những repo lớn có hàng ngàn comment, trình duyệt thường bị khựng hoặc load rất chậm.
- Khó tự động hóa: Bạn không thể viết script để “click chuột” tạo PR hàng loạt cho 10 microservices cùng lúc.
Các giải pháp ‘đồ cổ’ và hạn chế
Trước khi GitHub CLI (gh) ra đời, anh em thường dùng vài cách chữa cháy:
- Git Alias/Curl: Tự viết script gọi API GitHub. Cách này cực kỳ khó bảo trì và dễ lộ token bảo mật.
- Hub: Tiền thân của
gh. Hiện tại Hub đã bị chính GitHub “ghẻ lạnh” để dồn lực phát triển công cụ mới. - GUI Tools (GitKraken, Sourcetree): Trông trực quan nhưng lại ngốn RAM. Quan trọng nhất là chúng vẫn bắt bạn rời khỏi dòng lệnh đang gõ dở.
Làm chủ GitHub CLI (gh): Vũ khí của Pro Developer
GitHub CLI không chỉ là công cụ bổ trợ. Nó là một “trợ lý ảo” thực thụ ngay trong Terminal. Dưới đây là cách tôi tiết kiệm ít nhất 30 phút mỗi ngày nhờ gh.
1. Cài đặt và xác thực trong 1 nốt nhạc
Cài gh cực dễ qua Homebrew (macOS) hoặc Scoop (Windows). Sau khi cài, hãy chạy lệnh:
gh auth login
Chọn xác thực qua trình duyệt. Bạn chỉ cần làm việc này đúng một lần duy nhất. gh sẽ tự động lo liệu phần còn lại cho mọi repo sau này.
2. Quản lý Issue: Không cần rời mắt khỏi code
Thay vì loay hoay tìm tab Issues, hãy thử các lệnh sau:
# Liệt kê các issue đang được assign cho mình
gh issue list --assignee "@me"
# Đọc nội dung issue 42 ngay tại terminal
gh issue view 42
# Tạo nhanh issue mới kèm label
gh issue create --title "Lỗi hiển thị CSS trên Mobile" --body "Nút bấm bị tràn viền" --label "bug"
Mọi thao tác diễn ra trong tích tắc, giúp luồng suy nghĩ của bạn không bị ngắt quãng.
3. Pull Request – Tính năng ‘đáng đồng tiền bát gạo’
Đây mới là lúc gh tỏa sáng. Để tạo một PR từ branch hiện tại, tôi chỉ cần gõ:
gh pr create --fill
Tham số --fill sẽ tự lấy tiêu đề commit làm tiêu đề PR. Nếu muốn kiểm tra lại lần cuối bằng mắt, thêm flag --web để nó tự mở đúng trang PR đó trên trình duyệt.
Việc review code cho đồng nghiệp cũng nhàn hơn hẳn:
# Checkout nhanh vào branch của PR 105 để chạy thử local
gh pr checkout 105
# Merge PR và tự động xóa luôn branch rác
gh pr merge --merge --delete-branch
Dùng gh pr merge an toàn hơn gõ lệnh Git thuần vì nó có các bước kiểm tra trạng thái CI/CD trước khi gộp code.
4. Release chuyên nghiệp cho DevOps
Đừng để việc tạo Release trở thành nỗi ám ảnh mỗi cuối sprint. Với gh, bạn có thể đính kèm file build và tự soạn changelog trong một câu lệnh:
gh release create v1.1.0 ./dist/app.zip --generate-notes
Flag --generate-notes sẽ tự động gom tất cả tiêu đề PR đã merge để tạo thành Release Note cực kỳ chuyên nghiệp.
Mẹo nhỏ để workflow mượt mà hơn
Hãy tận dụng Alias để biến gh thành của riêng bạn. Ví dụ, tôi thường gán lệnh xem trạng thái PR thành một từ ngắn gọn:
gh alias set ps 'pr status'
Nếu bạn thích phong cách hacker, hãy kết hợp với fzf (công cụ tìm kiếm mờ). Lệnh dưới đây cho phép bạn chọn nhanh một PR từ danh sách để checkout mà không cần nhớ ID:
gh pr list | fzf | awk '{print $1}' | xargs gh pr checkout
Chốt lại: Có đáng để thay đổi?
Sử dụng GitHub CLI không phải để thể hiện kỹ năng dòng lệnh. Mục tiêu cuối cùng là bảo vệ sự tập trung của bạn. Việc tiết kiệm vài giây click chuột nghe có vẻ nhỏ, nhưng cộng dồn lại, nó giúp bạn duy trì trạng thái làm việc sâu (Deep Work) hiệu quả hơn.
Hãy thử cài đặt gh và dùng nó liên tục trong một tuần. Tôi tin rằng bạn sẽ sớm tự hỏi: “Tại sao mình lại chịu khó dùng bản web lâu đến thế?”

