การสร้างสถิติจากที่เก็บ Git


373

ฉันกำลังมองหาเครื่องมือ / สคริปต์ที่ดีที่ทำให้ฉันสามารถสร้างสถิติเล็กน้อยจากที่เก็บ git ฉันเคยเห็นคุณสมบัตินี้ในเว็บไซต์ที่ให้บริการรหัสบางแห่งและพวกเขามีข้อมูลเช่น ...

  • กระทำต่อผู้เขียน
  • กระทำต่อวัน / สัปดาห์ / ปี / ฯลฯ
  • บรรทัดของรหัสในช่วงเวลา
  • กราฟ
  • ... ล้นหลาม

โดยทั่วไปฉันแค่ต้องการทราบว่าโครงการของฉันเติบโตขึ้นเมื่อเวลาผ่านไปเท่าใดนักพัฒนาคนใดที่ยอมรับโค้ดส่วนใหญ่และอื่น ๆ

คำตอบ:


250

นอกจากGitStats (ตัวสร้างสถิติประวัติ git ) ที่กล่าวถึงโดยxyldเขียนใน Python และต้องการ Gnuplot สำหรับกราฟนอกจากนี้ยังมี

  • โครงการ gitstat ( SourceForge ) ( อินเตอร์เฟซสถิติ git บนเว็บ ) เขียนด้วย PHP และ Perl
  • Git Statisticsหรือ gitstats ( กรอบตัวชี้วัดที่ออกแบบมาเพื่อรวบรวมสถิติเกี่ยวกับที่เก็บ git ) ที่เขียนใน Python ผลของโครงการ git-statistics ที่ Google Summer of Code 2008นี่ไม่ใช่เว็บแอป
  • gitinspectorเป็นเครื่องมือ Python ที่ค่อนข้างใหม่ของ CLI สำหรับการสร้างรายงานที่ดี
  • Hercules - แอพเนทีฟที่ไม่มีการอ้างอิงเขียนใน Go ซึ่งเชี่ยวชาญในการวิเคราะห์ขั้นสูง

1
ดูคำตอบของ xyld gitstats (ไม่ใช่ gitstat) น่าจะเป็นทางออกที่ดีที่สุดของคุณ
Jay Paroline

ฉันได้รับ gitstats เพื่อติดตั้งหลังจากติดตั้ง readline-6.2.tar.gz และ gnuplot แต่แล้วก็พบว่ามันขาดห้องสมุดที่จำเป็นในการสร้างภาพสถิติทำให้ pngs หายไปเมื่อดู gitstats เอาท์พุท สวยมากตามนี้เพื่อให้มันทำงานอย่างถูกต้อง: dansanderson.com/blog/2011/03/ …
David van Dugteren

สำหรับการอ้างอิงชุดของเครื่องมือนี้เป็นจริงที่ดีและง่าย: github.com/dustin/bindir พวกเขาใช้แผนภูมิ google pithonและใช้งานง่าย: dustin.github.io/2009/01/11/timecard.html
Snicolas

1
มีแม้กระทั่ง Mac App สำหรับมัน: itunes.apple.com/us/app/gitstatx/id592679713?mt=12
pgpb.padilla

4
เจ๋งนี่ใช้งานได้ง่าย: apt-get install gitstats. จากนั้นเรียกใช้ในไดเรกทอรี git เช่นนี้:gitstats ~/gitdir /tmp/output
Luc

275

กระทำต่อผู้เขียน

git shortlog -s -n 

63
ไม่รวมการรวม:git shortlog -sn --no-merges
doblak

4
e flag ให้ที่อยู่อีเมลแก่ผู้มอบหมาย git shortlog -sne
Kalpa Gunarathna

1
โดยส่วนตัวฉันสนใจมากขึ้นในจำนวนบรรทัดที่แต่ละคนเป็นคนสุดท้ายที่จะสัมผัสหรือจำนวนบรรทัดทั้งหมดเปลี่ยนต่อคน ความมุ่งมั่นต่อผู้เขียนก็น่าสนใจเช่นกัน
Nathan Loyer

12
git shortlog -s -n --since "DEC 31 2017"ถ้าคุณต้องการกรองตั้งแต่วันที่กำหนด ดีมากสำหรับรีวิวประจำปี;)
Eneko Alonso

1
@Todd เห็นด้วย 100% ฉันหมายถึงเป็นเรื่องตลก
Eneko Alonso

78

ฉันทำคอมไพล์สถิติพื้นที่เก็บข้อมูลในเครื่องกำเนิดไฟฟ้าทับทิมก็เรียกว่าgit_stats

คุณสามารถหาตัวอย่างที่สร้างขึ้นสำหรับเก็บบางอย่างบนหน้าโครงการ

นี่คือรายการสิ่งที่สามารถทำได้:

  • สถิติทั่วไป
    • ไฟล์ทั้งหมด (ข้อความและไบนารี)
    • สายรวม (เพิ่มและลบ)
    • ภาระผูกพันทั้งหมด
    • ผู้เขียน
  • กิจกรรม (ทั้งหมดและต่อผู้เขียน)
    • มุ่งมั่นตามวันที่
    • กระทำตามชั่วโมงของวัน
    • มุ่งมั่นตามวันของสัปดาห์
    • กระทำตามชั่วโมงของสัปดาห์
    • มุ่งมั่นตามเดือนของปี
    • มุ่งมั่นโดยปี
    • มุ่งมั่นตามปีและเดือน
  • ผู้เขียน
    • กระทำโดยผู้เขียน
    • เพิ่มบรรทัดโดยผู้แต่ง
    • บรรทัดถูกลบโดยผู้แต่ง
    • เส้นเปลี่ยนไปโดยผู้แต่ง
  • ไฟล์และบรรทัด
    • ตามวันที่
    • โดยการขยาย

หากคุณมีความคิดว่าจะเพิ่มหรือปรับปรุงโปรดแจ้งให้เราทราบฉันจะขอบคุณข้อเสนอแนะใด ๆ


จำนวนวัตถุและขนาด repo จะเป็นการเพิ่มเติมที่ดีในสถิติทั่วไป
pdeschen

กระทำโดย: วันที่ของเดือน พวกเขาใช้งานมากขึ้นเมื่อสิ้นเดือนหรือไม่
Ole Tange

เย็นมาก! Havent เห็นในอดีต
FB

เป็นงานที่ดีจริงๆ แต่สิ่งเดียวที่ทำให้ฉันรำคาญใจคือเขียนบน Rubby: D
Georgi Peev

43

ฉันลองhttp://gitstats.sourceforge.net/เริ่มแล้วน่าสนใจมาก

เมื่อgit clone git://repo.or.cz/gitstats.gitเสร็จแล้วให้ไปที่โฟลเดอร์นั้นและพูดgitstats <git repo location> <report output folder>(สร้างโฟลเดอร์ใหม่สำหรับรายงานเนื่องจากจะสร้างไฟล์จำนวนมาก)

นี่คือรายการย่อของสถิติจากสิ่งนี้:

  • กิจกรรม
    • ชั่วโมงของวัน
    • วันของสัปดาห์
  • ผู้เขียน
    • รายชื่อผู้แต่ง
    • ผู้เขียนของเดือน
    • ผู้เขียนปี
  • ไฟล์
    • ไฟล์นับตามวันที่
    • ส่วนขยาย
  • เส้น
    • สายของรหัส
  • แท็ก

3
มันต้องการ GnuPlot ในการติดตั้ง Gnuplot บน Mac ให้ dmg จากที่นี่miscdebris.net/blog/2009/09/16/install-gnuplot-on-mac-os-xการแก้ไขนี้ใช้กับ gnuplot bin, leancrew.com/all-this / 2012/02 / fix-gnuplot-on-os-x-10-7-3
loretoparisi

@ Loretoparisi ลิงก์แรกไม่ทำงานอีกต่อไปฉันได้สร้างการสอนเกี่ยวกับวิธีการใช้ Gitstats บน Mac OSX 10.8.2 ที่นี่: softwarepassion.com/quick-peek-into-your-git-repo-with-gitstats
Kris

ใน ubuntu, sudo apt-get install gnuplot
okwap

คำแนะนำในการทำให้มันทำงานบน Windows: stackoverflow.com/a/29384484/24267 น่าเสียดายที่ฉันไม่พบ gitstats ที่มีประโยชน์มากเกินไป - ฉันต้องการดูสถิติที่ดีขึ้นของผู้เขียนแต่ละคน
mhenry1384

สำหรับผู้ใช้ Windows: codeproject.com/Tips/830613/…
Dani

16

การค้นหา google อย่างรวดเร็วทำให้ฉันไปที่: http://gitstats.sourceforge.net/

คุณลองโครงการนี้หรือไม่ ฉันแน่ใจว่ามีโครงการที่คล้ายกัน


9
บันทึกด่วนสำหรับทุกคนที่พบสิ่งนี้ผ่าน Google: gitstats ไม่เหมือนกับ gitstat ด้านบน Zomg gitstats นั้นดีกว่ามาก แต่ก็ไม่มีนรกที่ต้องพึ่งพา มันเป็นของตัวเองและใช้งานได้
Jay Paroline

1
ยกเว้น gnuplot-py และ บริษัท ดูเหมือนว่าต้องการลาก 40MB ของ deps ใน Fedora บนเว็บเซิร์ฟเวอร์ของฉัน :(
Aiden Bell

4

หากโครงการของคุณอยู่ใน GitHub ตอนนี้คุณ (เมษายน 2013) มีPulse (ดู " รับความเร็วสูงสุดด้วย Pulse "):

มันมี จำกัด มากขึ้นและจะไม่แสดงสถิติทั้งหมดที่คุณอาจต้องการ แต่พร้อมใช้งานสำหรับโครงการ GitHub ใด ๆ

Pulse เป็นวิธีที่ยอดเยี่ยมในการค้นหากิจกรรมล่าสุดในโครงการ
พัลส์จะแสดงให้คุณเห็นว่าใครเป็นคนที่มีความมุ่งมั่นและสิ่งที่เปลี่ยนแปลงในสาขาเริ่มต้นของโครงการ :

ชีพจร

คุณสามารถค้นหาเชื่อมโยงไปยังด้านซ้ายของแถบ nav ที่

ลิงค์

โปรดทราบว่าไม่มี (ยัง) API ที่จะดึงข้อมูลนั้น


4

และหากคุณต้องการโซลูชันโฮสต์คุณควรตรวจสอบOpen Hub (ชื่อเดิมคือ Ohloh.net) เป็นเรื่องดี แต่อย่าคาดหวังว่าจะมีสถิติขนาดใหญ่


ถ้าคุณโอเคกับอินเทอร์เฟซที่ค่อนข้างงุ่มง่ามและการอัปเดตเป็นเวลา ~ 24 ชั่วโมงตัวเลือกที่ดี Ohlohis เป็นอย่างอื่น
drahnr

1
ohloh เจ๋ง แต่มันใช้ได้กับ repos สาธารณะเท่านั้น นอกจากนี้ยังใช้งานได้กับ VCS จำนวนมากไม่เพียงแค่คอมไพล์
naught101

@ naught101 คุณอาจลองgitential.comเป็นทางเลือก มันอยู่ในรุ่นเบต้า แต่วัดและแสดงภาพชั่วโมงการเข้ารหัสผลผลิตสำหรับโครงการทีม repos และนักพัฒนารายบุคคล
kszucs

3

git-bars สามารถแสดง "การกระทำต่อวัน / สัปดาห์ / ปี / ฯลฯ "

คุณสามารถติดตั้งได้ด้วยpip install git-bars(cf. https://github.com/knadh/git-bars )

ผลลัพธ์มีลักษณะดังนี้:

$ 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เป็นเครื่องมือแยกของ gitstats

ฉันไม่แน่ใจว่ามันเกี่ยวข้องกับโครงการที่มีชื่อเดียวกันใน pypi หรือไม่ดังนั้นทางเลือกที่ดีที่สุดของคุณคือดาวน์โหลดรุ่นล่าสุดจากGitHubและติดตั้งในสภาพแวดล้อม Python ของคุณ

ตั้งแต่เดือนพฤศจิกายน 2019 ฉันสามารถใช้ v1.2.0 ภายใต้ Windows 7 หลังจากทำให้ gnuplot พร้อมใช้งานใน 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

เมื่อวานนี้ฉันได้เพิ่มไฟล์คอมไพเลอร์นักเขียน git-analytics ซึ่งสร้างคอนเทนเนอร์หลาย ๆ อันเพื่อเริ่มการวิเคราะห์ที่เก็บ git หลาย ๆ ตัวซึ่งกันและกัน

มันสามารถแสดงสถิติการกระทำของคุณเกี่ยวกับผู้เขียนและสถิติที่แตกต่างกัน

คุณสามารถใช้ไคลเอนต์เชิงมุมที่มีให้และ kibana เพื่อให้เห็นภาพสถิติ

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

มันจะได้รับการปรับปรุงเมื่อเวลาผ่านไป

ภาพหน้าจอไคลเอ็นต์เชิงมุม

ภาพหน้าจอไคลเอ็นต์เชิงมุม

ภาพหน้าจอของลูกค้า Kibana

ภาพหน้าจอของลูกค้า Kibana]


0

ฉันเพียงแค่สะดุดhttps://git-quick-stats.sh/ ดูเหมือนจะช้าไปหน่อย แต่มันง่ายมากที่จะติดตั้งและใช้งาน


0

ไม่จำเป็นต้องมีสคริปต์ แต่บริการนี้เรียกว่าHaystackโดยทั่วไปจะให้สถิติแนวโน้มและการแจ้งเตือนตามกิจกรรมคอมไพล์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.