Có thể liệt kê tất cả người dùng đã đóng góp cho một dự án (người dùng đã thực hiện các cam kết) trong Git không?
Bất kỳ số liệu thống kê bổ sung?
Có thể liệt kê tất cả người dùng đã đóng góp cho một dự án (người dùng đã thực hiện các cam kết) trong Git không?
Bất kỳ số liệu thống kê bổ sung?
Câu trả lời:
Để hiển thị tất cả người dùng và email và số lần xác nhận trong nhánh HIỆN TẠI:
git shortlog --summary --numbered --email
Hoặc đơn giản:
git shortlog -sne
Để hiển thị người dùng từ tất cả các chi nhánh (không chỉ những người trong chi nhánh hiện tại), bạn phải thêm --all
cờ:
git shortlog -sne --all
-e
.
--all
cờ
git shortlog --summary --numbered <pathToFile>
Nếu bạn muốn cụ thể hơn trong danh sách (tìm danh sách tác giả và tác giả duy nhất), bạn có thể sử dụng git log
:
git log --pretty="%an %ae%n%cn %ce" | sort | uniq
%an
tên tác giả%ae
email tác giả%n
dòng mới%cn
tên người đi làm%ce
email người gửiGiữ chỗ khác được mô tả trong tài liệu in đẹp củagit log
.
%n
nó không có ý nghĩa quá nhiều khi kết hợp với (dựa trên dòng) sort
, phải không? Dòng ghi nhật ký tác giả / tên người gửi / email theo các dòng riêng biệt, nhưng sắp xếp trên toàn bộ đầu ra ...
Bạn có thể thử điều này:
git log | grep Author: | sort | uniq
(người dùng đã thực hiện cam kết)
Lưu ý: theo git shortlog
nhóm mặc định cam kết của tác giả .
Nếu bạn cần nhóm chúng theo các ủy viên, bạn sẽ cần Git 2.12 (Q1 2017)
git shortlog -snc
Xem cam kết 03f4082 (16 tháng 12 năm 2016) của Jeff King ( peff
) .
Xem cam kết fbfda15 (ngày 11 tháng 10 năm 2016) của Linus Torvalds ( torvalds
) .
(Được hợp nhất bởi Junio C Hamano - gitster
- trong cam kết ad1b4e2 , ngày 27 tháng 12 năm 2016)
Linus Torvalds tự giới thiệu tính năng này:
shortlog
: nhóm theo thông tin người đi làmTrong một số tình huống, bạn có thể muốn nhóm các cam kết không phải theo tác giả, mà bằng cách thay thế.
Ví dụ, khi tôi chỉ muốn tìm kiếm những gì tôi vẫn còn thiếu
linux-next
trong cửa sổ hợp nhất hiện tại, tôi không quan tâm lắm đến việc ai đã viết một bản vá, như những gìgit tree
nó đến từ, thường nói về "ai đã cam kết nó ".Vì vậy, làm cho git shortlog chọn một tùy chọn "
-c
" hoặc "--committer
" để chuyển nhóm thành cái đó.
Một lựa chọn khác có thể là:
git log --format='%aN' | sort -u
Tôi chưa có ý định thử nghiệm bản thân mình, nhưng điều này có vẻ rất tốt cho thống kê dự án cho kho lưu trữ Git: https://github.com/visionmedia/git-extras
Kiểm tra bin
danh mục để xem các kịch bản khác nhau.
Ví dụ: git-count
tập lệnh (số lần xác nhận trên mỗi committer):
git shortlog -n $@ | grep "):" | sed 's|:||'
Câu trả lời tuyệt vời của @ pedro-nascimento, bởi @mic_e và những người khác đã giải quyết vấn đề.
Ngoài ra, bạn có thể thêm dòng sau vào .gitconfig
contributors = shortlog -e --summary --numbered
hoặc trong loại vỏ
git config --global alias.contributors 'shortlog -e --summary --numbered'
Và sau đó, bạn có thể gọi: git contributors
git contributors
Bạn có thể thử một gói tuyệt vời được gọi là git-bổ sung . Cụ thể, các lệnh git-Tóm tắt , git-Count và có thể một số khác .
git shortlog -sn HEAD