Nỗi khổ khi Git cơ bản là không đủ
Cuối mỗi sprint, mình thường rơi vào một vòng lặp mệt mỏi: dọn dẹp hàng tá branch cũ, cập nhật file changelog thủ công, và trả lời sếp xem file nào đang là “điểm nóng” cần ưu tiên refactor.
Thực tế, Git mặc định khá thuần túy. Để xóa một branch ở cả local và remote, bạn phải gõ ít nhất hai lệnh: git branch -d name và git push origin --delete name. Muốn xem thống kê commit của team? Bạn sẽ phải đánh vật với một mớ flag phức tạp của git shortlog kết hợp với grep hoặc awk.
Dù dùng Git đã lâu, mình vẫn thấy những thao tác lặp đi lặp lại này cực kỳ tốn thời gian. Anh em DevOps chỗ mình hay đùa: “Git sinh ra để quản lý code, chứ không phải để thử thách trí nhớ của lập trình viên”.
Tại sao các lệnh Git mặc định đôi khi lại gây khó khăn?
Git vốn được thiết kế như những khối lệnh nguyên tử (atomic). Nó cung cấp những viên gạch cơ bản nhất để bạn tự xây dựng quy trình riêng. Tuy nhiên, cách tiếp cận này bộc lộ vài điểm yếu trong quản lý dự án hiện đại:
- Thiếu tính tổng hợp: Git mạnh về theo dõi dòng code nhưng lại thiếu cái nhìn toàn cảnh về repository (ví dụ: ai đóng góp nhiều nhất, file nào thay đổi thường xuyên nhất).
- Workflow rườm rà: Nhiều tác vụ thực tế đòi hỏi phải kết hợp 3-4 lệnh đơn lẻ mới xong việc.
- Khó tự động hóa các tác vụ phi kỹ thuật: Việc tạo file CHANGELOG hay quản lý release tag thường tốn thêm script ngoài.
Những phương án xử lý “thủ công” thường gặp
Trước khi biết đến Git-extras, mình và đồng nghiệp thường loay hoay theo ba cách:
- Gõ lệnh thủ công: Cách này chậm và cực kỳ dễ sai. Chỉ cần một phút lơ đãng khi gõ lệnh xóa branch, bạn có thể khiến công sức cả ngày “bay màu”.
- Cấu hình Git Alias: File
.gitconfigcủa mình từng dài dằng dặc với hàng chục alias kiểugit cohaygit st. Tuy nhiên, alias rất khó xử lý các logic phức tạp hoặc chia sẻ cho cả team dùng chung. - Sử dụng GUI (SourceTree, GitKraken): Các công cụ này trực quan nhưng khá nặng máy. Đặc biệt khi cần SSH vào server để xử lý gấp, bạn chẳng thể nào mở giao diện đồ họa lên được.
Giải pháp: Git-extras – Bộ công cụ “xịn” cho Terminal
Sau nhiều lần tìm kiếm, mình tình cờ biết đến Git-extras. Đây là bộ sưu tập hơn 170 script bổ trợ, giúp biến những tác vụ phức tạp thành các lệnh đơn ngắn gọn. Thay vì tự viết script, bạn chỉ cần cài đặt và tận hưởng thành quả.
Cách cài đặt Git-extras
Việc cài đặt rất đơn giản thông qua các trình quản lý gói phổ biến.
Trên macOS:
brew install git-extras
Trên Linux (Ubuntu/Debian):
sudo apt-get install git-extras
Trên Windows:
Nếu dùng WSL, hãy cài như Linux. Với Git Bash thuần túy, bạn nên dùng scoop:
scoop install git-extras
Những lệnh thực tế giúp mình tiết kiệm 15 phút mỗi ngày
Dưới đây là những lệnh “vàng” mà mình tin rằng bất kỳ developer nào cũng cần.
1. git summary: Báo cáo dự án trong 1 giây
Khi mới tiếp nhận một repo lạ, thay vì đi hỏi khắp nơi, mình chỉ cần gõ git summary. Lệnh này sẽ xuất ra bảng thống kê: số lượng commit, tác giả tích cực nhất, và tuổi đời dự án (ví dụ: 2 years, 3 months). Nó giống như một bản báo cáo tóm tắt tình trạng sức khỏe của code base vậy.
2. git effort: Tìm file “nóng” nhất
Lệnh này cực kỳ hữu ích khi cần lên kế hoạch refactor. Nó liệt kê các file kèm số lượng commit tương ứng. File nào có chỉ số “effort” cao nghĩa là nó thay đổi quá thường xuyên – dấu hiệu của một God Object hoặc nơi tiềm ẩn nhiều bug.
git effort --above 10
Kết quả sẽ chỉ đích danh những file có trên 10 lần thay đổi để team tập trung tối ưu.
3. git delete-branch: Dọn dẹp chỉ với một lệnh
Quên việc phải gõ lệnh xóa ở cả local và remote đi. Với Git-extras, bạn chỉ cần:
git delete-branch feature-login
Hệ thống sẽ tự động quét và xóa sạch dấu vết của branch đó ở cả hai nơi. Nhanh và cực kỳ an toàn.
4. git changelog: Tạm biệt việc viết nhật ký thủ công
Đây là vị cứu tinh của mình mỗi kỳ release. Thay vì ngồi lục lại lịch sử từ v1.0 đến v1.1, mình dùng:
git changelog --final
Lệnh này tự động gom các commit message và format thành file CHANGELOG.md chuyên nghiệp. Nếu team bạn tuân thủ Conventional Commits, kết quả trả về sẽ cực kỳ đẹp mắt.
5. git ignore: Thêm nhanh file vào danh sách đen
Đang code mà lỡ tạo ra file log hay temp? Thay vì mở .gitignore rồi paste đường dẫn, mình chỉ cần gõ git ignore "*.log". Thao tác này giúp mình duy trì luồng tập trung mà không bị ngắt quãng bởi những việc vặt.
Kinh nghiệm áp dụng cho team 8 người
Mình đã khuyến khích cả team cài đặt Git-extras ngay từ ngày đầu setup dự án. Kết quả là sự thống nhất trong cách quản lý branch tăng lên rõ rệt. Chúng mình không còn những branch “rác” tồn tại hàng tháng trời trên server.
Một mẹo nhỏ: mình thường alias git summary thành git s để check nhanh mỗi sáng. Ngoài ra, lệnh git authors cũng rất hay để tạo file danh sách đóng góp cho các dự án Open Source, giúp ghi nhận công sức của mọi thành viên dù là nhỏ nhất.
Kết luận
Git-extras không thay thế Git, nó chỉ làm cho Git trở nên thân thiện và quyền năng hơn. Nếu bạn thường xuyên làm việc với dòng lệnh, bộ công cụ này sẽ giúp workflow mượt mà thấy rõ. Hãy để Git-extras lo phần việc chân tay, để bạn tập trung hoàn toàn vào việc giải quyết các bài toán logic quan trọng.
Hãy thử gõ git extras --help sau khi cài đặt. Bạn sẽ tìm thấy hàng trăm lệnh thú vị khác có thể thay đổi hoàn toàn cách bạn làm việc với Git hàng ngày.

