Git 프로젝트의 모든 개발자 목록


206

Git에서 프로젝트에 기여한 모든 사용자 (커밋을 수행 한 사용자)를 나열 할 수 있습니까?

추가 통계가 있습니까?

답변:


388

CURRENT 브랜치에서 모든 사용자 및 이메일과 커밋 수를 표시하려면 다음을 수행하십시오.

git shortlog --summary --numbered --email

또는 간단히 :

git shortlog -sne

현재 지점의 사용자 뿐만 아니라 모든 지점의 사용자를 표시하려면 --all플래그 를 추가해야합니다 .

git shortlog -sne --all

3
스크립트 또는 "ant"와 같은 스크립트에서이 명령을 사용하려면 개정을 지정하거나 아무 것도 출력하지 않습니다. 현재 개정판의 경우 HEAD를 사용할 수 있습니다.git shortlog -sn HEAD
Majenko

59
이메일 주소도 받으려면을 추가하십시오 -e.
mic_e

10
모든 지점 (현재 지점의 사용자뿐만 아니라)의 사용자를 표시하려면 --all플래그 를 추가해야합니다.
Gian Marco Gherardi

3
커밋 수를 원하지 않으면 어떻게해야합니까?
Wearybands

1
또한 전체 프로젝트가 아닌 특정 파일을 터치 한 사람을 확인하는 데 유용합니다. git shortlog --summary --numbered <pathToFile>
jxramos

40

목록에서 더 구체적으로 만들고 싶다면 (독특한 커미터와 작성자 목록을 찾으십시오) 다음을 사용할 수 있습니다 git log.

git log --pretty="%an %ae%n%cn %ce" | sort | uniq
  • %an 저자 이름
  • %ae 저자 이메일
  • %n 새로운 줄
  • %cn 커미터 이름
  • %ce 커미터 이메일

다른 자리 표시자는의 예쁜 인쇄 설명서에git log 설명되어 있습니다.


나는 %n(line-based)과 함께 너무 의미가 없다고 생각 sort합니까? 행은 작성자 / 커미터 이름 / 이메일을 별도의 행으로 기록하지만 전체 출력을 정렬합니다.
ssc

@ssc committer 이메일은 작성자 이메일과 다를 수 있습니다. % n은 이러한 차이를 찾기위한 새로운 라인입니다
Guillaume Vincent

19

당신은 이것을 시도 할 수 있습니다 :

git log | grep Author: | sort | uniq

1
이것은 .mailmap 파일 업데이트에 관심이있는 모든 사람에게 가장 유용한 명령입니다!
Ahi Tuna

7

(커밋을 수행 한 사용자)

참고 : 기본적으로 git shortlog그룹은 작성자에 의해 커밋합니다 .

커미터별로 그룹화해야하는 경우 Git 2.12 (2017 년 1 분기)가 필요합니다.

git shortlog -snc

Jeff King ( )의 commit 03f4082 (2016 년 12 월 16 일)를 참조하십시오 . Linus Torvalds ( )의 commit fbfda15 (2016 년 10 월 11 일)를 참조하십시오 . (의해 병합 Junio C 하마노 - -ad1b4e2 커밋 27 십이 2016)peff
torvalds
gitster

Linus Torvalds는이 기능을 소개합니다.

shortlog: 커미터 정보별로 그룹화

어떤 상황에서는 커밋을 작성자가 아닌 커미터별로 그룹화 할 수 있습니다.

난 그냥 내가 여전히에서 누락 무엇을 찾기 위해 원하는 경우 예를 들어, linux-next현재 병합 창에서, 나는 너무 많은 것 같이, 패치를 쓴 사람에 대해 걱정하지 않는다 git tree가 온 일반적으로 사람이 최선을 다하고 있습니다 "로 귀결되는,에서 그것".

따라서 git shortlog에 " -c"또는 " --committer"옵션을 사용하여 그룹화를 전환하십시오.



1

아직 직접 테스트하지는 않았지만 Git 리포지토리의 프로젝트 통계에 정말 좋습니다 : https://github.com/visionmedia/git-extras

아웃 확인 bin하여 다른 스크립트를 볼 수 카탈로그를.

예를 들어, git-count스크립트 (커미터 당 커밋 수)는 다음과 같습니다.

git shortlog -n $@ | grep "):" | sed 's|:||'

1
자식 shortlog -ns 덜 hackish 보인다
TomDLT

@TomDLT는 4 년 전에 게시 한 이후 git-extras의이 예제 스크립트가 변경되었습니다. 그러나 git-extras와 같은 프로젝트 또는 사람들의 도트 파일에서 git 스크립트를 보는 것에 대한 조언은 여전히 ​​훌륭한 조언이라고 생각합니다. 흥미로운 자식 명령을 찾고 있다면 나뿐만 아니라 게리 베르나르의 dotfiles를 추천 할 것입니다 : github.com/garybernhardt/dotfiles/tree/master/bin
다니엘 리

1

@ pedro_nascimento, @mic_e 등의 훌륭한 답변은 이미 문제를 해결합니다.

또한 다음 줄을 .gitconfig

contributors = shortlog -e --summary --numbered

또는 쉘 유형

git config --global alias.contributors 'shortlog -e --summary --numbered'

그리고 나서 간단하게 호출 할 수 있습니다. git contributors


1
이것을 설정 한 후에 간단히 전화 할 수 있습니다git contributors
lohfu

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