Đo ‘sức khỏe’ dự án với git-quick-stats: Thống kê Git chuyên sâu ngay trên Terminal

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

Tại sao bạn cần nhiều hơn là một lệnh git log?

Bạn đã bao giờ tự hỏi dự án của mình thực sự “khỏe” đến mức nào chưa? Thông thường, chúng ta hay đánh giá năng suất dựa trên cảm tính kiểu “dạo này anh em làm việc có vẻ nhiệt”. Nhưng để có một báo cáo thuyết phục cho sếp hoặc đơn giản là để tối ưu quy trình, bạn cần những con số biết nói.

Trước đây, mình thường dùng lệnh git log --author="Name" --oneline | wc -l để đếm commit. Cách này quá thô sơ. Nó không cho thấy bức tranh toàn cảnh về lượng code thêm vào, xóa đi, hay tần suất đóng góp theo khung giờ. Có lần, một thành viên mới force push nhầm branch, làm mất sạch code của cả team chỉ trong một buổi chiều. Nếu lúc đó mình theo dõi sát sao lịch sử repo, có lẽ mọi chuyện đã khác. Từ đó, mình bắt đầu tìm kiếm những công cụ phân tích trực quan hơn.

git-quick-stats là một công cụ dòng lệnh (CLI) gọn nhẹ, không yêu cầu thiết lập dashboard phức tạp như Grafana. Nó giúp bạn soi xét mọi chỉ số của một Git repository chỉ với vài giây chạy lệnh.

Cài đặt git-quick-stats trong một nốt nhạc

Công cụ này thực chất là một shell script đã được tối ưu hóa. Tùy vào hệ điều hành đang dùng, bạn có thể cài đặt cực nhanh theo các cách sau:

1. Dành cho macOS

Nếu đã cài sẵn Homebrew, bạn chỉ cần gõ:

brew install git-quick-stats

2. Dành cho Linux (Ubuntu/Debian)

Với các bản phân phối Debian, hãy dùng lệnh apt:

sudo apt update && sudo apt install git-quick-stats

Người dùng Arch Linux có thể tìm thấy nó trong AUR:

yay -S git-quick-stats

3. Cài đặt từ Source

Nếu muốn trải nghiệm bản mới nhất, hãy clone trực tiếp từ GitHub:

git clone https://github.com/arzzen/git-quick-stats.git
cd git-quick-stats
sudo make install

Sau khi cài xong, hãy gõ git-quick-stats -v để xác nhận mọi thứ đã sẵn sàng.

Khai thác dữ liệu: Từ tương tác đến tự động hóa

Điểm cộng lớn nhất của git-quick-stats là hỗ trợ cả chế độ menu trực quan và các flag dòng lệnh linh hoạt.

Chế độ menu (Interactive)

Chỉ cần truy cập vào thư mục dự án và gõ lệnh không tham số:

git-quick-stats

Một menu với hơn 20 tùy chọn sẽ hiện ra. Bạn có thể dễ dàng kiểm tra:

  • Author stats: Ai đóng góp nhiều nhất?
  • Daily stats: Ngày nào trong tuần team làm việc sung sức nhất?
  • Language stats: Tỷ lệ các ngôn ngữ lập trình trong dự án.

Chế độ dòng lệnh (Dành cho Automation)

Nếu cần lấy dữ liệu nhanh để đẩy qua Slack hoặc lưu vào file log, hãy dùng các flag trực tiếp. Đây là những lệnh mình thường xuyên áp dụng:

Xem tổng quan đóng góp của tất cả thành viên:

git-quick-stats -a

Lọc dữ liệu theo thời gian (Ví dụ cho Sprint Review):
Sử dụng biến môi trường _GIT_SINCE để giới hạn phạm vi thống kê.

export _GIT_SINCE="2024-01-01"
git-quick-stats -u

Một mẹo nhỏ: Đừng chỉ nhìn vào số lượng commit. Hãy chú ý tỷ lệ insertionsdeletions. Một lập trình viên giỏi thường xóa nhiều code thừa hơn là viết mới.

Biến số liệu thành hành động thực tế

Dữ liệu chỉ có giá trị khi bạn biết cách đọc vị chúng. Dưới đây là 3 cách mình dùng công cụ này để cải thiện chất lượng dự án:

1. Truy tìm “Hotspots” rủi ro

Sử dụng lệnh git-quick-stats -f để liệt kê các file bị sửa đổi nhiều nhất. Nếu file UserService.java có tới 500 lần thay đổi trong khi các file khác chỉ dưới 50, đó là dấu hiệu của Tight Coupling. File này có thể đang gánh quá nhiều logic và cần được refactor ngay lập tức.

2. Nhận diện nguy cơ Burnout

Lệnh git-quick-stats -T sẽ hiển thị biểu đồ đóng góp theo giờ. Nếu biểu đồ cho thấy lượng commit dày đặc vào lúc 1-2 giờ sáng, team bạn có thể đang bị quá tải. Là một Leader, mình sẽ điều chỉnh lại khối lượng công việc thay vì chỉ khen ngợi sự chăm chỉ đó.

3. Dọn dẹp “rác” trong Repo

Mình từng phát hiện một module cũ không ai động đến suốt 2 năm nhờ tính năng thống kê file. Sau khi mạnh dạn xóa bỏ, kích thước source code giảm 15%, giúp tốc độ build CI/CD nhanh hơn đáng kể. Việc này cũng giúp git fetch nhẹ nhàng hơn cho mọi người.

Tóm lại, git-quick-stats không phải là công cụ để “soi mói” nhân viên. Nó là một chiếc ống nghe y tế giúp bạn thấu hiểu sức khỏe dự án. Hãy dùng nó để cải thiện quy trình làm việc thay vì tạo áp lực lên đồng đội.

Share: