Nâng tầm Git với Git-extras: Cách mình ‘hack’ hiệu suất dòng lệnh mỗi ngày

Git tutorial - IT technology blog
Git tutorial - IT technology blog

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 namegit 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:

  1. 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”.
  2. Cấu hình Git Alias: File .gitconfig của mình từng dài dằng dặc với hàng chục alias kiểu git co hay git 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.
  3. 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.

Share: