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.

Jawaban:


251

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


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


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 

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.


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

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.


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.


4

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


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    ▀

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)

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]



0

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.