Kết quả mặc định của lệnh git who hiển thị bảng tóm tắt đóng góp của các tác giả theo số lượng commit
Máy Tính

Công Cụ git-who: Phân Tích Đóng Góp Dự Án Git Chuyên Sâu và Toàn Diện Hơn git blame

Trong bối cảnh phát triển phần mềm hiện đại, việc theo dõi và đánh giá đóng góp của từng thành viên trong một dự án Git là vô cùng quan trọng. git blame là một lệnh hữu ích cho phép bạn biết tác giả của từng dòng code cụ thể, nhưng nó chỉ dừng lại ở đó. Để có cái nhìn toàn diện hơn về đóng góp của các tác giả, từ đó xác định những người đóng góp hàng đầu, theo dõi sự thay đổi theo thời gian và hiểu rõ cấu trúc dự án, bạn cần một công cụ mạnh mẽ hơn. Đó chính là lúc git-who phát huy tác dụng. Công cụ này cung cấp những thông tin chi tiết, có giá trị về tác giả các commit trong kho lưu trữ Git, giúp các nhóm phát triển và quản lý dự án có cái nhìn sâu sắc hơn về codebase của mình.

git-who là gì và khác git blame như thế nào?

git-who là một lệnh Git tùy chỉnh, được thiết kế để cung cấp thông tin hữu ích và thú vị về các tác giả của những commit trong một kho lưu trữ. Không giống như git blame chỉ tập trung vào quyền tác giả từng dòng code riêng lẻ, git-who mang lại cái nhìn toàn diện hơn về các tệp, thư mục và toàn bộ dự án.

Bạn có thể sử dụng git-who để:

  • Phát hiện ai đã cập nhật mã gần đây nhất.
  • Xác định những tác giả đã đóng góp nhiều nhất cho toàn bộ dự án.
  • Tìm hiểu ai đang làm việc trên các thành phần con cụ thể của dự án.

Mặc dù là công cụ chạy trên terminal, git-who tạo ra đầu ra hấp dẫn và dễ đọc bằng cách trình bày dữ liệu dưới dạng bảng, cột được căn chỉnh và sử dụng màu sắc để làm nổi bật thông tin như số dòng được thêm hoặc xóa. Điều này giúp người dùng dễ dàng nắm bắt thông tin một cách trực quan, ngay cả với các dự án lớn có nhiều đóng góp phức tạp.

Hướng dẫn Cài đặt và Sử dụng git-who

Việc cài đặt git-who khá đơn giản, đặc biệt nếu bạn sử dụng trình quản lý gói Homebrew trên macOS hoặc Linux:

brew install git-who

Ngoài ra, bạn cũng có thể cài đặt phần mềm từ mã nguồn hoặc tải các bản dựng sẵn từ trang phát hành của dự án trên GitHub.

Sau khi cài đặt, bạn có thể chạy lệnh bằng cách gõ git-who hoặc git who trong thư mục kho lưu trữ Git của mình. Đảm bảo rằng tệp thực thi git-who nằm trong biến môi trường PATH của bạn để có thể sử dụng cú pháp git who tiện lợi hơn.

Kết quả mặc định của lệnh git who hiển thị bảng tóm tắt đóng góp của các tác giả theo số lượng commitKết quả mặc định của lệnh git who hiển thị bảng tóm tắt đóng góp của các tác giả theo số lượng commit

Chế độ xem mặc định này là subcommand table. Nó hiển thị một bảng tóm tắt đẹp mắt về những người đóng góp hàng đầu, cùng với lần chỉnh sửa cuối cùng và tổng số commit của họ. git-who còn hỗ trợ hai lệnh con khác: treehist.

Lệnh con tree hiển thị toàn bộ cấu trúc phân cấp của kho lưu trữ, với người đóng góp hàng đầu được liệt kê bên cạnh mỗi thư mục, cùng với tổng số commit của họ. Điều này giúp bạn dễ dàng hình dung ai là người chịu trách nhiệm chính cho từng phần của codebase.

Kết quả lệnh git who tree hiển thị cấu trúc thư mục dự án và tác giả đóng góp nhiều nhất cho mỗi thành phầnKết quả lệnh git who tree hiển thị cấu trúc thư mục dự án và tác giả đóng góp nhiều nhất cho mỗi thành phần

Lệnh con thứ ba là hist (viết tắt của “history”). Chế độ xem này hiển thị dòng thời gian đóng góp theo ngày, cho phép bạn theo dõi những người đã đóng góp cho dự án theo thời gian.

Biểu đồ lịch sử đóng góp của các tác giả theo thời gian qua lệnh git who histBiểu đồ lịch sử đóng góp của các tác giả theo thời gian qua lệnh git who hist

Đây cũng là một biểu đồ tần suất (histogram), giúp bạn nhanh chóng xác định các khoảng thời gian có nhiều commit nhất, từ đó hiểu rõ hơn về nhịp độ phát triển của dự án. Một số lệnh có thể mất nhiều thời gian để hoàn thành, đặc biệt là trên các kho lưu trữ lớn như Linux kernel. Để tăng tốc độ, bạn có thể lọc kết quả bằng các tùy chọn nâng cao của git-who.

Các Tính Năng Nâng Cao của git-who

Mỗi lệnh con của git-who đều có các giá trị mặc định hợp lý, nhưng bạn sẽ thấy kết quả rất khác nhau tùy thuộc vào kích thước và cấu trúc của kho lưu trữ của mình. Ví dụ, chạy git-who tree trong một kho lưu trữ khổng lồ sẽ tạo ra rất nhiều dòng đầu ra.

Chương trình git-who hỗ trợ một số tùy chọn để giúp bạn điều chỉnh hành vi và đầu ra của nó. Tất cả các lệnh con đều cho phép bạn sử dụng --author để chỉ bao gồm các tác giả cụ thể và --nauthor để loại trừ họ. Chúng cũng chấp nhận các tùy chọn --since--until để giới hạn đầu ra theo ngày:

Kết quả lệnh git who được lọc theo tác giả và khoảng thời gian sử dụng tùy chọn --sinceKết quả lệnh git who được lọc theo tác giả và khoảng thời gian sử dụng tùy chọn –since

Điều quan trọng cần lưu ý là các thống kê của git-who không bao gồm các merge commits (commit hợp nhất) theo mặc định. Điều này có thể tạo ra sự khác biệt lớn, tùy thuộc vào cách quản lý kho lưu trữ. Ví dụ, Linus Torvalds vắng mặt một cách rõ ràng trong các thống kê của kho lưu trữ Linux của chính ông:

Kết quả mặc định của git who trong kho lưu trữ Linux không hiển thị đóng góp của Linus TorvaldsKết quả mặc định của git who trong kho lưu trữ Linux không hiển thị đóng góp của Linus Torvalds

Tuy nhiên, với tư cách là người bảo trì tổng thể, Torvalds xử lý một số lượng lớn các thao tác hợp nhất, và ông là người đóng góp lớn nhất khi các commit hợp nhất được tính đến, bằng cách sử dụng tùy chọn --merges:

Linus Torvalds là người đóng góp hàng đầu khi sử dụng tùy chọn --merges với lệnh git who trong kho LinuxLinus Torvalds là người đóng góp hàng đầu khi sử dụng tùy chọn –merges với lệnh git who trong kho Linux

Tùy chỉnh git-who table

Bảng mặc định sắp xếp theo tổng số commit. Bạn có thể thay đổi để sắp xếp các tác giả theo commit gần đây nhất của họ bằng cách sử dụng tùy chọn -m:

Bảng kết quả git who được sắp xếp theo lần chỉnh sửa gần nhất bằng tùy chọn -mBảng kết quả git who được sắp xếp theo lần chỉnh sửa gần nhất bằng tùy chọn -m

Tùy chọn -l tập trung vào số dòng đã thay đổi thay vì số commit. Nó sắp xếp theo số dòng đã thay đổi và hiển thị số lượng tệp đã thay đổi, số dòng được thêm và số dòng bị xóa:

Bảng kết quả lệnh git who -l hiển thị số dòng mã được thêm và xóa bởi mỗi tác giảBảng kết quả lệnh git who -l hiển thị số dòng mã được thêm và xóa bởi mỗi tác giả

Bạn cũng có thể sắp xếp đầu ra theo số lượng tệp đã thay đổi bằng -f hoặc theo lần thay đổi đầu tiên bằng -c.

Tùy chỉnh git-who tree

Điều đầu tiên bạn có thể muốn làm với lệnh tree là giới hạn độ sâu của nó. Nếu kho lưu trữ của bạn chứa nhiều tệp và thư mục, lệnh tree mặc định sẽ tạo ra rất nhiều đầu ra. Tùy chọn -d cho phép bạn chỉ định độ sâu, để bạn có thể xem thông tin tác giả chỉ cho các thư mục cấp cao nhất, ví dụ:

Cấu trúc cây dự án hiển thị với độ sâu giới hạn bằng tùy chọn -d trong lệnh git who treeCấu trúc cây dự án hiển thị với độ sâu giới hạn bằng tùy chọn -d trong lệnh git who tree

Tùy chọn -l sẽ chọn tác giả với số dòng đã thay đổi nhiều nhất thay vì tác giả với số commit nhiều nhất. Nó chú thích mỗi tệp và thư mục với số dòng mà mỗi tác giả đã thêm và xóa tại điểm đó:

Kết quả git who tree -l hiển thị tác giả đóng góp nhiều dòng mã nhất cho mỗi phần của dự ánKết quả git who tree -l hiển thị tác giả đóng góp nhiều dòng mã nhất cho mỗi phần của dự án

Tùy chỉnh git-who hist

Lệnh con hist đã có một tính năng tích hợp thông minh, tự động chọn chế độ xem theo ngày, tháng hoặc năm dựa trên tuổi của kho lưu trữ:

Biểu đồ git who hist tự động điều chỉnh hiển thị đóng góp theo năm cho kho lưu trữ cũ và theo tháng cho kho lưu trữ mớiBiểu đồ git who hist tự động điều chỉnh hiển thị đóng góp theo năm cho kho lưu trữ cũ và theo tháng cho kho lưu trữ mới

Các tùy chọn --since--until hoạt động rất tốt với hist, để hạn chế khoảng thời gian mà nó báo cáo.

Lệnh git who hist với tùy chọn --since lọc lịch sử đóng góp từ một ngày cụ thểLệnh git who hist với tùy chọn –since lọc lịch sử đóng góp từ một ngày cụ thể

Các tùy chọn này khá linh hoạt về định dạng mà chúng chấp nhận, vì vậy hãy thử nghiệm. Ví dụ, tất cả các định dạng sau đều sẽ hoạt động:

  • --since=2010
  • --since="2010-09-01 12:00:00"
  • --since=yesterday
  • --since="3 weeks ago"
  • --since="february 24"

Kết luận

git-who là một công cụ mạnh mẽ và linh hoạt, mang lại cái nhìn sâu sắc vượt trội về đóng góp của tác giả trong các dự án Git so với git blame. Với khả năng hiển thị dữ liệu một cách trực quan thông qua các lệnh table, treehist, cùng với các tùy chọn lọc và tùy chỉnh nâng cao, git-who giúp các nhà phát triển và quản lý dự án dễ dàng hiểu rõ hơn về lịch sử phát triển, cấu trúc codebase và hiệu suất của nhóm. Bằng cách tận dụng triệt để git-who, bạn có thể tối ưu hóa quy trình làm việc, đánh giá đóng góp một cách công bằng và đưa ra các quyết định sáng suốt hơn để thúc đẩy sự phát triển của dự án. Hãy bắt đầu sử dụng git-who ngay hôm nay để khám phá những thông tin giá trị ẩn sâu trong kho lưu trữ Git của bạn!

Related posts

Đánh Giá SanDisk 4TB Extreme Portable SSD: Tốc Độ Ưu Việt & Ưu Đãi Lớn

Administrator

Từ Máy In Điện Toán Đến Màn Hình Hiện Đại: Lịch Sử Phát Triển Của Terminal Máy Tính

Administrator

Nanoleaf Ra Mắt Pegboard Desk Dock: Nâng Tầm Góc Làm Việc Với Đèn RGB Đa Năng và Sạc Tích Hợp

Administrator