How to use the command git shortlog (with examples)
Git shortlog is a command that provides a summarized version of the git log output. It can be used to generate a summary of the commits made in a Git repository, grouped and sorted according to different criteria.
Use case 1: View a summary of all the commits made, grouped alphabetically by author name
Code:
git shortlog
Motivation:
This use case is useful when you want to get an overview of all the commits made in a repository and group them alphabetically by the author’s name. It can help you quickly identify the authors who have made the most contributions to the project.
Explanation:
The git shortlog
command without any additional arguments provides a summary of all the commits made, grouped alphabetically by the author’s name. It counts the number of commits made by each author and displays the results in a readable format.
Example output:
John Doe (5):
...
Jane Smith (3):
...
Use case 2: View a summary of all the commits made, sorted by the number of commits made
Code:
git shortlog -n
Motivation:
This use case is useful when you want to see the list of authors sorted by the number of commits made. It can help you identify the most active contributors in the project.
Explanation:
The -n
option is used to sort the summary of commits by the number of commits made. By default, the summary is sorted alphabetically. This option allows you to sort the summary based on the commit count in descending order.
Example output:
John Doe (5):
...
Jane Smith (3):
...
Use case 3: View a summary of all the commits made, grouped by the committer identities (name and email)
Code:
git shortlog -c
Motivation:
This use case is useful when you want to see a summary of commits grouped based on the committer’s identities, including both the name and email. It can help you identify individual contributors who have made multiple commits.
Explanation:
The -c
option is used to group the summary of commits based on the committer’s identities. By default, the summary is grouped by the author’s name. This option allows you to see the summary of commits based on both the committer’s name and email.
Example output:
John Doe <johndoe@example.com> (5):
...
Jane Smith <janesmith@example.com> (3):
...
Use case 4: View a summary of the last 5 commits (i.e. specify a revision range)
Code:
git shortlog HEAD~5..HEAD
Motivation:
This use case is useful when you want to view a summary of only the last 5 commits made in the repository. It can help you quickly see the recent activity and changes made.
Explanation:
The HEAD~5..HEAD
argument specifies a revision range to limit the summary of commits to the last 5 commits. HEAD~5
represents the commit 5 parent commits before the current commit, and HEAD
represents the current commit.
Example output:
John Doe (2):
...
Jane Smith (3):
...
Use case 5: View all users, emails, and the number of commits in the current branch
Code:
git shortlog -sne
Motivation:
This use case is useful when you want to get a summarized list of all the users, emails, and the number of commits made in the current branch. It can help you keep track of the contributors and their commitment to the project.
Explanation:
The -s
option is used to provide a summarized output of the commits, displaying only the number of commits made by each author. The -n
option is used to sort the summary by the number of commits in descending order. The -e
option is used to display the author’s email address along with their name.
Example output:
10 John Doe <johndoe@example.com>
8 Jane Smith <janesmith@example.com>
5 Alice Johnson <alicejohnson@example.com>
Use case 6: View all users, emails, and the number of commits in all branches
Code:
git shortlog -sne --all
Motivation:
This use case is useful when you want to get a summarized list of all the users, emails, and the number of commits made in all branches of the repository. It can help you understand the overall contribution of each author across multiple branches.
Explanation:
The --all
option is used to include all branches in the summary of commits. By default, the summary only includes the current branch. This option allows you to see the combined summary of commits across all branches.
Example output:
20 John Doe <johndoe@example.com>
15 Jane Smith <janesmith@example.com>
10 Alice Johnson <alicejohnson@example.com>
Conclusion:
The git shortlog
command is a powerful tool for generating a summarized version of the git log output. It provides different ways to group, sort, and filter the summary of commits, allowing you to quickly analyze the contributors and their commitment to the project. By using different options and arguments, you can tailor the output to meet your specific needs.