Tạo số liệu thống kê từ kho Git


373

Tôi đang tìm kiếm một số công cụ / tập lệnh tốt cho phép tôi tạo một vài số liệu thống kê từ kho git. Tôi đã thấy tính năng này trên một số trang web lưu trữ mã và chúng chứa thông tin như ...

  • cam kết trên mỗi tác giả
  • cam kết mỗi ngày / tuần / năm / v.v.
  • dòng mã theo thời gian
  • đồ thị
  • ... nhiều hơn nữa

Về cơ bản tôi chỉ muốn biết một dự án của tôi phát triển bao nhiêu theo thời gian, mà nhà phát triển cam kết hầu hết mã, v.v.

Câu trả lời:


250

Bên cạnh GitStats (trình tạo thống kê lịch sử git ) được đề cập bởi xyld , được viết bằng Python và yêu cầu Gnuplot cho biểu đồ, cũng có

  • dự án gitstat ( SourceForge ) ( giao diện thống kê git dựa trên web ), được viết bằng PHP và Perl,
  • Git Statistics , còn gọi là gitstats ( khung số liệu được thiết kế để thu thập số liệu thống kê về kho git ), được viết bằng Python, kết quả của dự án thống kê git tại Google Summer of Code 2008 Đây không phải là một ứng dụng web
  • gitinspector Là một công cụ Python dựa trên CLI khá mới để tạo các báo cáo hay
  • Hercules - ứng dụng gốc không có phụ thuộc, được viết bằng Go, chuyên về các loại phân tích nâng cao.

1
xem câu trả lời của xyld. gitstats (không phải gitstat) có lẽ là đặt cược tốt nhất của bạn.
Jay Paroline

Tôi đã cài đặt gitstats sau khi cài đặt readline-6.2.tar.gz và gnuplot. Nhưng sau đó tìm thấy nó bị thiếu các thư viện cần thiết để tạo ra các hình ảnh stat, dẫn đến thiếu pngs khi xem đầu ra gitstats. Vì vậy, khá nhiều người theo dõi điều này để làm cho nó hoạt động chính xác: dansanderson.com/blog/2011/03/ Khăn
David van Dugteren

Để tham khảo, bộ công cụ này thực sự rất hay và đơn giản: github.com/dustin/bindir . Chúng dựa trên biểu đồ pithon của google và rất dễ sử dụng: Dustin.github.io/2009/01/11/timecard.html
Snicolas

1
Thậm chí còn có một ứng dụng Mac cho nó: itunes.apple.com/us/app/gitstatx/id592679713?mt=12
pgpb.padilla

4
Thật tuyệt, điều này chỉ đơn giản là hoạt động : apt-get install gitstats. Sau đó chạy nó trên một thư mục git như thế này:gitstats ~/gitdir /tmp/output
Luc

275

cam kết trên mỗi tác giả

git shortlog -s -n 

63
loại trừ sáp nhập:git shortlog -sn --no-merges
doblak

4
cờ điện tử cung cấp cho bạn địa chỉ email của ủy viên git shortlog -sne
Kalpa Gunarathna

1
Cá nhân tôi quan tâm nhiều hơn đến việc mỗi người chạm vào bao nhiêu dòng, hoặc tổng số dòng thay đổi trên mỗi người. Cam kết trên mỗi tác giả cũng thú vị.
Nathan Loyer

12
git shortlog -s -n --since "DEC 31 2017"nếu bạn muốn lọc kể từ một ngày nhất định. Tuyệt vời cho đánh giá hàng năm;)
Eneko Alonso

1
@Todd đồng ý 100%. Ý tôi là nó như một trò đùa
Eneko Alonso

78

Tôi đang làm một trình tạo số liệu thống kê kho git trong ruby, nó được gọi là git_stats .

Bạn có thể tìm thấy các ví dụ được tạo cho một số kho lưu trữ trên trang dự án .

Dưới đây là danh sách những gì nó có thể làm:

  • Thống kê chung
    • Tổng số tệp (văn bản và nhị phân)
    • Tổng số dòng (đã thêm và xóa)
    • Tổng số cam kết
    • Tác giả
  • Hoạt động (tổng và mỗi tác giả)
    • Cam kết theo ngày
    • Cam kết theo giờ trong ngày
    • Cam kết theo ngày trong tuần
    • Cam kết theo giờ trong tuần
    • Cam kết theo tháng trong năm
    • Cam kết theo năm
    • Cam kết theo năm và tháng
  • Tác giả
    • Cam kết của tác giả
    • Dòng được thêm bởi tác giả
    • Dòng bị xóa bởi tác giả
    • Dòng thay đổi bởi tác giả
  • Tập tin và dòng
    • Theo ngày
    • Băng cach mở rộng

Nếu bạn có bất kỳ ý tưởng nào để thêm hoặc cải thiện xin vui lòng cho tôi biết, tôi sẽ đánh giá cao bất kỳ thông tin phản hồi.


Số lượng đối tượng và kích thước repo sẽ là những bổ sung tốt cho thống kê chung
pdeschen

Cam kết theo: Ngày trong tháng. Họ có tích cực hơn vào cuối tháng không?
Ole Tange

RẤT TUYỆT! Havent đã thấy trong quá khứ
fb

Công việc thực sự tốt, nhưng điều duy nhất làm phiền tôi là nó được viết trên Rubby: D
Georgi Peev

43

Tôi đã thử http://gitstats.sourceforge.net/ , bắt đầu rất thú vị.

Khi đã git clone git://repo.or.cz/gitstats.gitxong, đi đến thư mục đó và nóigitstats <git repo location> <report output folder> (tạo thư mục mới để báo cáo vì điều này tạo ra nhiều tệp)

Dưới đây là danh sách nhanh các số liệu thống kê từ đây:

  • Hoạt động
    • giờ trong ngày
    • ngày trong tuần
  • tác giả
    • Danh sách tác giả
    • Tác giả của tháng
    • Tác giả của năm
  • các tập tin
    • Số tập tin theo ngày
    • Tiện ích mở rộng
  • dòng
    • Dòng mã
  • thẻ

3
nó cần GnuPlot. Để cài đặt Gnuplot, trên Mac lấy các dmg từ đây miscdebris.net/blog/2009/09/16/install-gnuplot-on-mac-os-x các áp dụng sửa chữa này vào thùng gnuplot, leancrew.com/all-this / 2012/02 / fixing-gnuplot-on-os-x-10-7-3
loretoparisi

@Loretoparisi, liên kết đầu tiên không hoạt động nữa, tôi đã tạo một hướng dẫn về cách sử dụng Gitstats trên Mac OSX 10.8.2 tại đây: softwarepassion.com/quick-peek-into-your-git-repo-with-gitstats
Kris

Trong Ubuntu, sudo apt-get install gnuplot
okwap

Gợi ý để chạy nó trên Windows: stackoverflow.com/a/29384484/24267 Thật không may, tôi không thấy gitstats quá hữu ích - Tôi muốn xem phân tích thống kê tốt hơn cho mỗi tác giả.
mhenry1384

Đối với người dùng Windows: codeproject.com/Tips/830613/ cấp
Dani

16

Một tìm kiếm nhanh trên google dẫn tôi đến: http://gitstats.sourceforge.net/

Bạn đã thử dự án này? Tôi chắc chắn có những dự án tương tự.


9
Ghi chú nhanh cho bất kỳ ai tìm thấy điều này qua Google: gitstats không giống với gitstat ở trên. Zomg gitstats là tốt hơn nhiều, insomuchas nó không có địa ngục phụ thuộc. Nó khép kín và chỉ hoạt động.
Jay Paroline

1
Ngoại trừ gnuplot-py và công ty dường như muốn thu hút 40 MB tiền gửi trên Fedora trên máy chủ web của tôi :(
Aiden Bell

4

Nếu dự án của bạn trên GitHub, thì ngay bây giờ (tháng 4 năm 2013) có Pulse (xem " Bắt kịp tốc độ với Pulse "):

Nó hạn chế hơn và sẽ không hiển thị tất cả các số liệu thống kê bạn có thể cần, nhưng có sẵn cho bất kỳ dự án GitHub nào.

Pulse là một cách tuyệt vời để khám phá hoạt động gần đây trên các dự án.
Pulse sẽ cho bạn thấy ai đã tích cực cam kết và những gì đã thay đổi trong nhánh mặc định của dự án :

Xung

Bạn có thể tìm thấy liên kết ở bên trái của thanh điều hướng .

Liên kết

Lưu ý rằng không có (chưa) API để trích xuất thông tin đó.


4

Và nếu bạn thích giải pháp lưu trữ, bạn nên xem Open Hub (trước đây là Ohloh.net). Nó là tốt đẹp, nhưng đừng mong đợi số liệu thống kê lớn.


Nếu bạn ổn với giao diện vụng về và cập nhật trên cơ sở ~ 24h, thì đó là lựa chọn tốt, nếu không tôi sẽ tiếp cận phương pháp DIY.
drahnr

1
ohloh là mát mẻ, nhưng nó chỉ hoạt động trên repos công cộng. Ngoài ra, nó hoạt động với rất nhiều VCS, không chỉ git.
ness101

@ naught101 Bạn có thể thử gitential.com thay thế. Đó là bản beta, nhưng đo lường và trực quan hóa giờ mã hóa, năng suất cho các dự án, nhóm, repos và các nhà phát triển cá nhân.
kszucs

3

git-bars có thể hiển thị cho bạn "cam kết mỗi ngày / tuần / năm / vv".

Bạn có thể cài đặt nó với pip install git-bars(xem https://github.com/knadh/git-bars )

Đầu ra trông như thế này:

$ git-bars -p month
370 commits over 19 month(s)
2019-10  7    ▀▀▀▀▀▀
2019-09  36   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2019-08  7    ▀▀▀▀▀▀
2019-07  10   ▀▀▀▀▀▀▀▀
2019-05  4    ▀▀▀
2019-04  2    ▀
2019-03  28   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2019-02  32   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2019-01  16   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-12  41   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-11  52   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-10  57   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-09  37   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-08  17   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-07  1    
2018-04  7    ▀▀▀▀▀▀
2018-03  12   ▀▀▀▀▀▀▀▀▀▀
2018-02  2    ▀
2016-01  2    ▀

3

bộ điều chỉnh là một ngã ba nâng cao của công cụ gitstats.

Tôi không chắc liệu nó có liên quan đến dự án có cùng tên trên pypi hay không, vì vậy cách tốt nhất của bạn là tải xuống bản phát hành mới nhất từ GitHub và cài đặt nó trong môi trường Python của bạn.

Kể từ tháng 11 năm 2019, tôi đã có thể sử dụng v1.2.0 trong Windows 7, sau khi cung cấp gnuplot trong PATH.


usage: repostat [-h] [-v] [-c CONFIG_FILE] [--no-browser] [--copy-assets]
                git_repo output_path

Git repository desktop analyzer. Analyze and generate git statistics in HTML
format

positional arguments:
git_repo              Path to git repository
output_path           Path to an output directory

optional arguments:
-h, --help            show this help message and exit
-v, --version         show program's version number and exit
-c CONFIG_FILE, --config-file CONFIG_FILE
                        Configuration file path
--no-browser          Do not open report in browser
--copy-assets         Copy assets (images, css, etc.) into report folder
                        (report becomes relocatable)

2

Mới hôm qua tôi đã thêm tệp soạn thảo docker-compote phân tích git của tôi, nó tích hợp nhiều thùng chứa để bắt đầu phân tích nhiều kho git với nhau.

Nó có thể hiển thị cho bạn cam kết thống kê theo thời gian về tác giả và một số thống kê khác.

Bạn có thể sử dụng máy khách góc được cung cấp và cả kibana để trực quan hóa số liệu thống kê.

https://github.com/alexejsailer/git-analytics-docker

Nó sẽ được cải thiện theo thời gian.

Ảnh chụp màn hình khách hàng góc

Ảnh chụp màn hình khách hàng góc

Ảnh chụp màn hình khách hàng Kibana

Ảnh chụp màn hình khách hàng Kibana]



0

Nó không nhất thiết phải cung cấp các tập lệnh nhưng dịch vụ này có tên Haystack về cơ bản cung cấp các số liệu thống kê, xu hướng và cảnh báo dựa trên hoạt động của git.

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.