Git 리포지토리에서 통계 생성


373

git 저장소에서 몇 가지 통계를 생성 할 수있는 좋은 도구 / 스크립트를 찾고 있습니다. 일부 코드 호스팅 사이트에서이 기능을 보았는데 다음과 같은 정보가 포함되어 있습니다.

  • 저자 당 커밋
  • 일 / 주 / 년 / 년 당 커밋.
  • 시간이 지남에 따른 코드 라인
  • 그래프
  • ... 훨씬 더

기본적으로 나는 시간이 지남에 따라 프로젝트가 얼마나 커지는 지, 어떤 개발자가 대부분의 코드를 커밋하는지 등을 알고 싶습니다.

답변:


250

게다가 GitStats ( 자식 히스토리 통계 생성기 언급) xyld 파이썬 작성된 그래프위한 GNUPLOT을 필요도있다

  • PHP와 Perl로 작성된 gitstat ( SourceForge ) 프로젝트 ( 웹 기반 git 통계 인터페이스 )
  • Git Statistics , 일명 gitstats ( git 저장소에 대한 통계를 수집하도록 설계된 메트릭 프레임 워크 )는 Python으로 작성되었으며 Google Summer of Code 2008git-statistics 프로젝트 결과입니다. 이것은 웹 앱이 아닙니다.
  • gitinspector 멋진 보고서를 생성하기위한 새로운 CLI 기반 Python 도구입니다.
  • Hercules- 고급 분석 유형을 전문으로하는 Go로 작성된 종속성이없는 기본 앱입니다.

1
xyld의 답변을 참조하십시오. gitstats (gitstat 아님)가 아마도 가장 좋은 방법 일 것입니다.
Jay Paroline

readline-6.2.tar.gz 및 gnuplot을 설치 한 후 설치할 gitstats가 있습니다. 그러나 통계 이미지를 생성하는 데 필요한 라이브러리가 누락되어 gitstats 출력을 볼 때 png가 누락되었습니다. 그래서 거의가 제대로 작동 얻을이 다음 : dansanderson.com/blog/2011/03/...
데이비드 밴 Dugteren에게

: 참고로, 도구 세트는 정말 좋은 간단 github.com/dustin/bindir . 그것들은 구글 파이썬 차트를 기반으로 하며 사용하기 간단합니다 : dustin.github.io/2009/01/11/timecard.html
Snicolas


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 플래그는 커미터에게 이메일 주소를 제공합니다 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 저장소 통계 생성기를 사용하고 있습니다 .git_stats 입니다.

프로젝트 페이지 에서 일부 리포지토리에 대해 생성 된 예제를 찾을 수 있습니다 .

수행 할 수있는 작업의 목록은 다음과 같습니다.

  • 일반 통계
    • 총 파일 (텍스트 및 이진)
    • 총계 (추가 및 삭제)
    • 총 커밋
    • 저자
  • 활동 (전체 및 저자별)
    • 날짜 별 커밋
    • 시간별 커밋
    • 요일별로 커밋
    • 시간별 커밋
    • 연도 별 커밋
    • 연도 별 커밋
    • 연도 및 월별로 커밋
  • 저자
    • 저자에 의한 커밋
    • 작성자가 추가 한 줄
    • 저자가 삭제 한 줄
    • 저자가 변경 한 줄
  • 파일과 줄
    • 날짜 별
    • 확장하여

무엇을 추가하거나 개선해야하는지 알고 있다면 의견을 보내 주시면 감사하겠습니다.


객체 수와 저장소 크기는 일반 통계에 추가 될 수 있습니다
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을 설치하려면 miscdebris.net/blog/2009/09/16/install-gnuplot-on-mac-os-x 가의 gnuplot 함이 수정 프로그램을 적용, leancrew.com/all-this / 2012 / 02 / fixing-gnuplot-on-os-x-10-7-3
loretoparisi

@Loretoparisi, 첫 번째 링크가 더 이상 작동하지 않습니다. Mac OSX 10.8.2에서 Gitstats를 사용하는 방법에 대한 자습서를 만들었습니다. softwarepassion.com/quick-peek-into-your-git-repo-with-gitstats
Kris

우분투에서 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
구글을 통해 이것을 발견하는 사람을위한 빠른 참고 : gitstats는 위의 gitstat와 같은 것이 아닙니다 . Zomg gitstats는 종속성 지옥이 없기 때문에 훨씬 낫습니다. 자체 포함되어 있으며 작동합니다.
Jay Paroline

1
gnuplot-py를 제외하고 회사는 내 웹 서버의 Fedora에서 40MB의

4

프로젝트가 GitHub에있는 경우 이제 (2013 년 4 월) 펄스가 있습니다 ( " 펄스로 속도 확인"참조 ).

더 제한적이며 필요한 모든 통계를 표시 하지는 않지만 모든 GitHub 프로젝트에서 즉시 사용할 수 있습니다.

펄스는 프로젝트에서 최근 활동을 발견하는 좋은 방법입니다.
Pulse는 적극적으로 커밋 한 사람과 프로젝트의 기본 브랜치에서 변경된 사항을 보여줍니다 .

펄스

탐색 모음 왼쪽에있는 링크를 찾을 수 있습니다 .

링크

해당 정보를 추출하는 API는 아직 없습니다.


4

호스팅 솔루션을 선호하는 경우 Open Hub (이전 Ohloh.net)를 확인해야합니다 . 좋지만 큰 통계는 기대하지 않습니다.


약간 어색한 인터페이스에 만족하고 ~ 24 시간마다 업데이트하면 ohlohis를 선택하는 것이 좋습니다. 그렇지 않으면 DIY 방식으로 갈 것입니다.
drahnr

1
ohloh는 멋지지만 공개 리포지토리에서만 작동합니다. 또한 git뿐만 아니라 많은 VCS에서 작동합니다.
naught101

@ naught101 대안으로 gitential.com 을 사용해보십시오 . 베타 버전이지만 코딩 시간, 프로젝트, 팀, 저장소 및 개별 개발자의 생산성을 측정하고 시각화합니다.
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

다시 게시 는 강화 된 gitstats 도구입니다.

pypi에서 동일한 이름의 프로젝트와 관련이 있는지 확실하지 않으므로 GitHub 에서 최신 릴리스를 다운로드 하여 Python 환경에 설치하는 것이 가장 좋습니다 .

2019 년 11 월 현재 PATH에서 gnuplot을 사용할 수있게 한 후 Windows 7에서 v1.2.0을 사용할 수있었습니다.


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 docker-compose 파일을 추가했습니다.이 파일은 여러 컨테이너를 빌드하여 서로 다른 git 리포지토리를 분석하기 시작합니다.

또한 저자에 대한 통계와 커밋 통계를 보여줍니다.

제공된 각도 클라이언트와 키바 나를 사용하여 통계를 시각화 할 수 있습니다.

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

시간이 지남에 따라 개선 될 것입니다.

앵귤러 클라이언트

앵귤러 클라이언트

Kibana Client 스크린 샷

Kibana Client 스크린 샷]



0

반드시 스크립트를 제공하지는 않지만 Haystack 이라는이 서비스는 기본적으로 git 활동을 기반으로 통계, 트렌드 및 경고를 제공합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.