Liệt kê tất cả các nhà phát triển trong một dự án trong Git


207

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:


390

Để 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 --allcờ:

git shortlog -sne --all

3
Lưu ý rằng nếu bạn muốn sử dụng lệnh này từ trong tập lệnh hoặc một cái gì đó như "ant", bạn phải chỉ định sửa đổi hoặc nó không cho ra kết quả gì. Đối với phiên bản hiện tại, bạn có thể sử dụng CHÍNH:git shortlog -sn HEAD
Majenko

59
Để có được địa chỉ e-mail là tốt, thêm -e.
mic_e

10
Để 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 --allcờ
Gian Marco Gherardi

3
Nếu tôi không muốn số lượng cam kết thì sao?
Wearyband

1
Điều này cũng tuyệt vời để kiểm tra ai đã chạm vào một tệp cụ thể chứ không phải toàn bộ dự án. git shortlog --summary --numbered <pathToFile>
jxramos

40

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ửi

Giữ chỗ khác được mô tả trong tài liệu in đẹp củagit log .


Tôi nghĩ rằng %nnó 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 ...
ssc

@ssc email committer có thể khác với email của tác giả. % n dành cho dòng mới để tìm ra những khác biệt
Guillaume Vincent

19

Bạn có thể thử điều này:

git log | grep Author: | sort | uniq

1
Đây là lệnh hữu ích nhất cho bất kỳ ai quan tâm đến việc cập nhật tệp .mailmap của họ!
Ahi Tuna

7

(người dùng đã thực hiện cam kết)

Lưu ý: theo git shortlognhó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àm

Trong 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-nexttrong 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 treenó đế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 đó.



1

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 bindanh mục để xem các kịch bản khác nhau.

Ví dụ: git-counttập lệnh (số lần xác nhận trên mỗi committer):

git shortlog -n $@ | grep "):" | sed 's|:||'

1
git shortlog -ns dường như ít hack hơn
TomDLT

@TomDLT kể từ khi tôi đăng bài này 4 năm trước, tập lệnh ví dụ này trong git-bổ sung đã thay đổi. Nhưng tôi nghĩ rằng lời khuyên của tôi để xem các tập lệnh git từ các dự án như git-bổ sung hoặc từ các dotfiles của mọi người vẫn là lời khuyên tuyệt vời. Nếu bạn đang tìm kiếm các lệnh git thú vị thì tôi cũng sẽ giới thiệu dotfiles của Gary Bernhardt: github.com/ÿbernhardt/dotfiles/tree/master/bin
Daniel Lee

1

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


1
bạn có lẽ nên thêm một lưu ý rằng sau khi cài đặt, bạn chỉ cần gọigit contributors
lohfu

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.