Is it possible to list all users that contributed to a project (users that have done commits) in Git?
Any additional statistics?
I am using GHI to open issues and where I can assign issues to specific users as long as I know their usernames
I don't if this is going to be helpful for someone but I am just going to leave the solution that worked for me here:
To get only the authors username from the GitHub I ran
git shortlog -sne | grep + | sed -e "s/.*+//; s/@.*//"
which will only list the username of the authors on the current project.
Then i can pick an username and assign an issue to him/her.
FOR ANYONE WHO WANTS TO OPEN ISSUES AND/OR ASSIGN TO SOMEONE FROM CMD/TERMINAL, HERE THE DOCUMENTATION OF THE GHI https://github.com/stephencelis/ghi
I haven't got around to testing it myself yet, but this looks really nice for project statistics for a Git repository: https://github.com/visionmedia/git-extras
Check out the bin
catalog to see the the different scripts.
For example, the git-count
script (commit count per committer):
git shortlog -n $@ | grep "):" | sed 's|:||'
(users that have done commits)
Note: by default git shortlog groups commits by authors.
If you need to group them by committers, you will need Git 2.12 (Q1 2017)
git shortlog -snc
See commit 03f4082 (16 Dec 2016) by Jeff King (peff).
See commit fbfda15 (11 Oct 2016) by Linus Torvalds (torvalds).
(Merged by Junio C Hamano -- gitster -- in commit ad1b4e2, 27 Dec 2016)
Linus Torvalds himself introduces this feature:
shortlog
: group by committer informationIn some situations you may want to group the commits not by author, but by committer instead.
For example, when I just wanted to look up what I'm still missing from
linux-next
in the current merge window, I don't care so much about who wrote a patch, as whatgit tree
it came from, which generally boils down to "who committed it".So make git shortlog take a "
-c
" or "--committer
" option to switch grouping to that.
Another option can be:
git log --format='%aN' | sort -u
Great answers by @pedro-nascimento, by @mic_e and others already solve the problem.
In addition, you can add the following line to your .gitconfig
contributors = shortlog -e --summary --numbered
or in shell type
git config --global alias.contributors 'shortlog -e --summary --numbered'
And after that you can simply invoke: git contributors
If you want to be more specific in the list (find a list of unique committer and author), you could use git log
:
git log --pretty="%an %ae%n%cn %ce" | sort | uniq
%an
author name%ae
author email%n
new line%cn
committer name%ce
committer emailOther placeholders are described in the pretty print documentation of git log.