Menghasilkan statistik dari repositori Git

373

Saya sedang mencari beberapa alat / skrip yang bagus yang memungkinkan saya untuk menghasilkan beberapa statistik dari repositori git. Saya telah melihat fitur ini di beberapa situs hosting kode, dan mereka berisi informasi seperti ...

  • komit per penulis
  • berkomitmen per hari / minggu / tahun / dll.
  • baris kode dari waktu ke waktu
  • grafik
  • ... lebih banyak

Pada dasarnya saya hanya ingin mendapatkan gambaran seberapa banyak proyek saya tumbuh dari waktu ke waktu, pengembang mana yang paling banyak membuat kode, dan sebagainya.

BastiBen
sumber

Jawaban:

251

Selain GitStats ( generator statistik sejarah git ) yang disebutkan oleh xyld , ditulis dengan Python dan membutuhkan Gnuplot untuk grafik, ada juga

Jakub Narębski
sumber
1
lihat jawaban xyld. gitstats (bukan gitstat) mungkin merupakan taruhan terbaik Anda.
Jay Paroline
Saya dapat menginstal gitstats setelah menginstal readline-6.2.tar.gz dan gnuplot. Tetapi kemudian menemukan bahwa itu tidak memiliki pustaka yang diperlukan untuk menghasilkan gambar stat, sehingga png yang hilang saat melihat output gitstats. Cukup banyak yang mengikuti ini untuk membuatnya bekerja dengan benar: dansanderson.com/blog/2011/03/…
David van Dugteren
Untuk referensi, set alat ini sangat bagus dan sederhana: github.com/dustin/bindir . Mereka didasarkan pada grafik Google Pithon dan mudah digunakan: dustin.github.io/2009/01/11/timecard.html
Snicolas
1
Bahkan ada Aplikasi Mac untuk itu: itunes.apple.com/us/app/gitstatx/id592679713?mt=12
pgpb.padilla
4
Keren, ini hanya bekerja: apt-get install gitstats. Kemudian jalankan di direktori git seperti ini:gitstats ~/gitdir /tmp/output
Luc
275

komit per penulis

git shortlog -s -n 
Ruslan Kabalin
sumber
63
tidak termasuk gabungan:git shortlog -sn --no-merges
doblak
4
bendera memberi Anda alamat email pengendara git shortlog -sne
Kalpa Gunarathna
1
Secara pribadi saya lebih tertarik pada berapa banyak baris yang harus disentuh setiap orang, atau jumlah total baris yang diubah per orang. Komitmen per penulis juga menarik.
Nathan Loyer
12
git shortlog -s -n --since "DEC 31 2017"jika Anda ingin memfilter sejak tanggal tertentu. Bagus untuk ulasan tahunan;)
Eneko Alonso
1
@Todd 100% setuju. Saya maksudkan itu sebagai lelucon
Eneko Alonso
78

Saya sedang melakukan generator statistik repositori git di ruby, itu disebut git_stats .

Anda dapat menemukan contoh yang dihasilkan untuk beberapa repositori di halaman proyek .

Berikut adalah daftar yang dapat dilakukan:

  • Statistik umum
    • Total file (teks dan biner)
    • Total baris (ditambahkan dan dihapus)
    • Total komitmen
    • Penulis
  • Aktivitas (total dan per penulis)
    • Berkomitmen berdasarkan tanggal
    • Berkomitmen per jam
    • Berkomitmen pada hari minggu
    • Berkomitmen per jam dalam seminggu
    • Berkomitmen berdasarkan bulan tahun
    • Berkomitmen berdasarkan tahun
    • Berkomitmen berdasarkan tahun dan bulan
  • Penulis
    • Komitmen oleh penulis
    • Baris ditambahkan oleh penulis
    • Baris dihapus oleh penulis
    • Baris diubah oleh penulis
  • File dan garis
    • Tanggal
    • Dengan ekstensi

Jika Anda tahu apa yang harus ditambahkan atau ditingkatkan, beri tahu saya, saya sangat menghargai umpan balik apa pun.

Tomgi
sumber
Jumlah objek dan ukuran repo akan menjadi tambahan yang bagus untuk statistik Umum
pdeschen
Komitmen oleh: Hari dalam sebulan. Apakah mereka lebih aktif di akhir bulan?
Ole Tange
SANGAT KEREN! Havent terlihat di masa lalu
fb
Pekerjaan yang sangat bagus, tetapi satu-satunya hal yang menggangguku adalah yang ditulis di Rubby: D
Georgi Peev
43

Saya mencoba http://gitstats.sourceforge.net/ , mulai sangat menarik.

Setelah git clone git://repo.or.cz/gitstats.gitselesai, buka folder itu dan katakangitstats <git repo location> <report output folder> (buat folder baru untuk laporan karena ini menghasilkan banyak file)

Berikut adalah daftar singkat statistik dari ini:

  • aktivitas
    • jam sehari
    • hari dalam seminggu
  • penulis
    • Daftar Penulis
    • Penulis Bulan
    • Penulis Tahun
  • file
    • Jumlah file berdasarkan tanggal
    • Ekstensi
  • garis
    • Baris Kode
  • tag
Jeevan Pingali
sumber
3
itu membutuhkan GnuPlot. Untuk menginstal Gnuplot, pada Mac ambil dmg dari sini miscdebris.net/blog/2009/09/16/install-gnuplot-on-mac-os-x yang menerapkan perbaikan ini ke bin gnuplot, leancrew.com/all-this / 2012/02 / fixing-gnuplot-on-os-x-10-7-3
loretoparisi
@Loretoparisi, tautan pertama tidak berfungsi lagi, saya telah membuat tutorial tentang cara menggunakan Gitstats di Mac OSX 10.8.2 di sini: softwarepassion.com/quick-peek-into-your-git-repo-with-gitstats
Kris
Di ubuntu, sudo apt-get install gnuplot
okwap
Petunjuk untuk menjalankannya di Windows: stackoverflow.com/a/29384484/24267 Sayangnya, saya tidak menemukan gitstats terlalu berguna - Saya ingin melihat rincian statistik yang lebih baik untuk setiap penulis.
mhenry1384
Untuk pengguna Windows: codeproject.com/Tips/830613/…
Dani
16

Pencarian google cepat membawa saya ke: http://gitstats.sourceforge.net/

Sudahkah Anda mencoba proyek ini? Saya yakin ada proyek serupa.

dlamotte
sumber
9
Catatan cepat untuk siapa saja yang menemukan ini melalui Google: gitstats tidak sama dengan gitstat di atas. Zomg gitstats jauh lebih baik, insomuchas tidak memiliki ketergantungan neraka. Cukup mandiri dan hanya berfungsi.
Jay Paroline
1
Kecuali gnuplot-py dan perusahaan tampaknya ingin menyeret 40MB deps pada Fedora di server web saya :(
Aiden Bell
4

Jika proyek Anda menggunakan GitHub, Anda sekarang (April 2013) memiliki Pulsa (lihat " Get up to speed with Pulse "):

Ini lebih terbatas, dan tidak akan menampilkan semua statistik yang Anda butuhkan, tetapi sudah tersedia untuk proyek GitHub.

Pulse adalah cara yang bagus untuk menemukan aktivitas terkini pada proyek.
Pulse akan menunjukkan kepada Anda siapa yang telah secara aktif melakukan dan apa yang telah berubah di cabang default proyek :

Nadi

Anda dapat menemukan tautan di sebelah kiri bilah navigasi .

Tautan

Perhatikan bahwa tidak ada (belum) API untuk mengekstrak informasi itu.

VONC
sumber
4

Dan jika Anda lebih suka solusi yang dihosting, Anda harus memeriksa Open Hub (sebelumnya Ohloh.net). Itu bagus, tapi jangan berharap statistik besar.

lzap
sumber
Jika Anda baik-baik saja dengan antarmuka yang agak canggung dan pembaruan pada basis ~ 24jam, ohloh pilihan yang bagus, kalau tidak saya akan pergi untuk pendekatan DIY.
drahnr
1
ohloh itu keren, tetapi hanya bekerja di repo publik. Juga, ini bekerja dengan banyak VCS, bukan hanya git.
naught101
@ naught101 Anda dapat mencoba gitential.com sebagai alternatif. Ini dalam versi beta, tetapi mengukur dan memvisualisasikan jam pengkodean, produktivitas untuk proyek, tim, repo, dan pengembang individual.
kszuc
3

git-bars dapat menunjukkan "komit per hari / minggu / tahun / dll".

Anda dapat menginstalnya dengan pip install git-bars(lih. Https://github.com/knadh/git-bars )

Outputnya terlihat seperti ini:

$ 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    ▀
white_gecko
sumber
3

repostat adalah garpu alat gitstats yang disempurnakan.

Saya tidak yakin apakah itu terkait dengan proyek dengan nama yang sama pada pypi, jadi taruhan terbaik Anda adalah mengunduh rilis terbaru dari GitHub dan memasangnya di lingkungan Python Anda.

Pada November 2019, saya dapat menggunakan v1.2.0 di Windows 7, setelah membuat gnuplot tersedia di 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)
alexandrul
sumber
2

Baru kemarin saya menambahkan file docker-compose git-analytics, yang membangun beberapa kontainer untuk mulai menganalisis beberapa repositori git.

Itu dapat menunjukkan Anda melakukan statistik dari waktu ke waktu tentang penulis dan juga beberapa statistik berbeda.

Anda dapat menggunakan klien sudut yang disediakan dan juga kibana untuk memvisualisasikan statistik.

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

Ini akan ditingkatkan seiring waktu.

Tangkapan layar Klien Sudut

Tangkapan layar Klien Sudut

Screenshot Klien Kibana

Screenshot Klien Kibana]

Alexej Sailer
sumber
0

Itu tidak selalu menyediakan skrip tetapi layanan ini disebut Haystack pada dasarnya menyediakan statistik, tren dan peringatan berdasarkan aktivitas git.

lovedev
sumber