Git brv (with examples)
Git is a widely-used version control system that allows developers to track changes to their codebase. One of the useful commands in Git is git brv
, which is part of the git-extras
package. This command prints a list of branches, sorted by the last commit date. In this article, we will explore eight different use cases of the git brv
command, along with code examples and explanations.
1. List each branch showing date, latest commit hash, and message
git brv
Motivation: When working on a project with multiple branches, it can be helpful to have a quick overview of the branches and their latest commits. This use case allows you to see important information like the date, commit hash, and commit message for each branch.
Explanation: The git brv
command is used without any arguments. It retrieves the latest commit information for each branch and prints it in a sorted list.
Example output:
* master 2021-07-01 e5a2d7d Add new feature
feature-1 2021-06-29 8dcf3ef Fix bug in module A
feature-2 2021-06-27 c3d3424 Refactor function B
development2021-06-25 671f315 Merge pull request #123
In the above example, four branches are listed in descending order of the last commit date. The branch names are displayed with the latest commit date, commit hash, and commit message.
2. List each branch showing branch name, date, and time
git brv --date
Motivation: Sometimes, it’s necessary to view branch details with more specific time information. This use case allows you to see the branch name, along with the date and time of the latest commit.
Explanation: The --date
option is provided as an argument to the git brv
command. It modifies the output to include the branch name, precise date, and time of the latest commit.
Example output:
* master July 1, 2021, 09:15 AM
feature-1 June 29, 2021, 03:45 PM
feature-2 June 27, 2021, 11:30 AM
development June 25, 2021, 06:20 PM
In the above example, the --date
option adds the time information to the output, providing a more detailed view of the latest commit times for each branch.
3. List each branch showing branch name, author, and commit count
git brv --author --count
Motivation: It can be useful to see the number of commits and the author of each branch, especially when collaborating with multiple developers. This use case allows you to view the branch name, author name, and commit count for each branch.
Explanation: The --author
and --count
options are combined as arguments to the git brv
command. The --author
option adds the author name to the output, while the --count
option adds the commit count.
Example output:
* master John Doe (5 commits)
feature-1 Jane Smith (3 commits)
feature-2 John Doe (7 commits)
development Jane Smith (2 commits)
In the above example, the --author
option displays the author’s name, followed by the number of commits made by that author in parentheses.
4. List each branch showing branch name, date range, and commit range
git brv --date-range --commit-range
Motivation: Sometimes, you may want to see the range of commit dates and commit hashes for each branch. This use case allows you to view the branch name, commit date range, and commit hash range.
Explanation: The --date-range
and --commit-range
options are provided as arguments to the git brv
command. The --date-range
option adds the commit date range, while the --commit-range
option adds the commit hash range.
Example output:
* master July 1 - July 5, commits: e5a2d7d - 3456789
feature-1 June 29 - July 1, commits: 8dcf3ef - 1234567
feature-2 June 27 - June 30, commits: c3d3424 - abcdefg
development June 25 - June 29, commits: 671f315 - 9876543
In the above example, the --date-range
option displays the range of dates for each branch’s commits. Similarly, the --commit-range
option shows the range of commit hashes for each branch.
5. List each branch showing branch name, author, date, and latest commit message
git brv --author --date --message
Motivation: When reviewing branches, it can be beneficial to see the branch name, author, date, and latest commit message all together. This use case allows you to view all these details for each branch.
Explanation: The --author
, --date
, and --message
options are combined as arguments to the git brv
command. The --author
option includes the author’s name, the --date
option adds the commit date, and the --message
option adds the latest commit message.
Example output:
* master John Doe (July 1, 2021) - Add new feature
feature-1 Jane Smith (June 29, 2021) - Fix bug in module A
feature-2 John Doe (June 27, 2021) - Refactor function B
development Jane Smith (June 25, 2021) - Merge pull request #123
In the above example, the combined options provide a comprehensive overview of each branch, including the branch name, author’s name, commit date, and latest commit message.
6. List each branch showing branch name, date, latest commit hash, and number of files changed
git brv --date --hash --num-files-changed
Motivation: Occasionally, it’s essential to gather information about the files changed in each branch. This use case allows you to see the branch name, commit date, latest commit hash, and the number of files changed.
Explanation: The --date
, --hash
, and --num-files-changed
options are combined as arguments to the git brv
command. The --date
option adds the commit date, the --hash
option displays the latest commit hash, and the --num-files-changed
option shows the count of changed files.
Example output:
* master July 1, 2021 - e5a2d7d (3 files changed)
feature-1 June 29, 2021 - 8dcf3ef (5 files changed)
feature-2 June 27, 2021 - c3d3424 (2 files changed)
development June 25, 2021 - 671f315 (1 file changed)
In the above example, the --num-files-changed
option adds the count of files changed for each branch.
7. List each branch showing branch name, date, and relative commit time
git brv --date --relative-time
Motivation: Sometimes, it is more helpful to see the relative commit time rather than the absolute date and time. This use case allows you to view the branch name, commit date, and relative commit time.
Explanation: The --date
and --relative-time
options are combined as arguments to the git brv
command. The --relative-time
option displays the relative commit time instead of the absolute date and time.
Example output:
* master July 1, 2021 - 2 hours ago
feature-1 June 29, 2021 - 2 days ago
feature-2 June 27, 2021 - 4 days ago
development June 25, 2021 - 6 days ago
In the above example, the --relative-time
option provides a more contextual representation of the commit times for each branch.
8. List each branch showing branch name, date, and commit duration
git brv --date --commit-duration
Motivation: Understanding the duration of commits can help identify any long-running branches. This use case allows you to see the branch name, commit date, and the duration between consecutive commits.
Explanation: The --date
and --commit-duration
options are combined as arguments to the git brv
command. The --commit-duration
option calculates and displays the time duration between consecutive commits.
Example output:
* master July 1, 2021 - 2 hours
feature-1 June 29, 2021 - 2 days, 4 hours
feature-2 June 27, 2021 - 4 days, 6 hours
development June 25, 2021 - 6 days, 10 hours
In the above example, the --commit-duration
option adds the duration between consecutive commits for each branch.