Show Branches
Last updated onWhen you work with Git, many times you will be working in multiple branches on a repository. Knowing how to list all branches in Git is a basic skill you need — whether you are moving between features, monitoring your progress, or collaborating with others. In this tutorial, I will show you the different commands and options that are available for listing local and/or remote branches in your Git repository. At the end of this post, you should be able to quickly tell which branches are what and how that can easily enhance your workflow. Let’s dive in!
Command Syntax for Listing Git Branches
git branch
This command simply lists all the local branches in your Git repository. The branch currently in use is marked with an asterisk.
For example:
To list branches matching a specific pattern, use --list
followed by the first slug name of the branch.
git branch --list 'collected*'
There are other commands used to list branches on the remote server, and additional flags can perform various other tasks. Let’s see how to list all branches locally and remotely in Git.
Listing All Branches Locally and Remotely in Git
By running the following command, you will see all branches locally, and remotely.
git branch -a
This command combines information from local branches (git branch
) and remote branches (git branch -r
), so you get a comprehensive list of all the Git repository in your Gits. Above output detail about, the branch you’re currently checkout with an asterisk.
One more thing, you can display more data about each branch using the -vva
flag.
git branch -vva
This command is used to display more detailed information about branches, including both local and remote branches, along with additional details such as the last commit on each branch.
Let’s focus a bit more on how to list the branches in the remote repository.
Viewing Remote Branches: Displaying Remote Branches
Listing Git Branches Remotely lists the branches that exist on a remote-only repository, generally where you only use the including server as an archive. This last fact is key in collaborative development, where several developers work together on a project and need to keep tabs on the branches available in their remote repository. The command is very cool and the primary one used for this which git branch –remote or -r.
Let’s see an example.
git branch -r
Alternatively, to list all remote branches you can use the following command.
git branch --remote
# OR
git branch --remotes
Bash
Running any of these two commands will return the screen as shown in the image below.
Developers sometimes use git ls-remote
it to visually see the branch references on a remote repository. So let us go through this command and see how it works.
Listing Remote Heads by Branch References
The command of git ls-remote --heads origin
provides targeted searching of remote branch references in a repository named ‘origin’. Subheading again stresses what command provides and why it exists, to return extensive information about branch references (with a bonus of not needing a local repository for that) For example:
# list the references (usually branches)
# on a remote repository
git ls-remote --heads
# Fetches information about all types of
# references in the remote repository.
git ls-remote
The result of both commands would look like the image below.
The refs/heads/master
and refs/heads/cars
are the branches on a remote repository that you have in the above image.
By scrolling down to the section below, we will explain why we ran the list branches command. Let’s move forward.
Project Collaboration and Branch Management
If you are working with others on a project or managing different features, reading all branches in the repository accurately is important. Branches listing: to check what kind of parallel streams are going on in the project. This information is useful for a variety of reasons:
- Project Structure Overview
- Navigating Between Features
- Monitoring Progress
- Collaboration
- Branch Cleanup
- Troubleshooting
Let’s summarize it.
Wrapping Up
In this tutorial, we explored the fundamental aspects of list branches in a Git repository, both locally and remotely.
The exploration of the git branch
command started with basic: Git comes built-in with a nice little shorthand that lets us list out all our local branches very easily. In addition, we showed pattern matching via flags –list
to show how you could filter and organize which branches are displayed based on certain criteria.
Broadening our horizons, we looked at the git branch -a
command which gives an overview of both local as well as remote branches. The complete list helps the developer to have a quick look at the branch’s landscape and focus on the currently checked-out branch is more readable.
If you wanted to see a little more detail than that, we introduced the -vva
flag which is quite useful as it provides even further information about each branch including details of the last commit. This was especially valuable for developers who wanted to learn more about the recent history of branches.
Switching back to remote repositories, we examined the importance of remote-tracking branches in a collaborative development team. The git branch -r
command which became the go-to utility for viewing all remote branches without much hassle.
We also presented alternative commands like git branch --remote
and git branch --remotes
to provide developers with options on what command they want to use in accessing details of branches within a remote server.
In a dedicated series, We have looked at the git ls-remote --heads origin
command to show you how it can be used again providing an alternative way of exploring branch references in our remote repository. This is especially convenient for situations where you need details but there’s no local repository available.
Frequently Asked Questions (FAQs)
How do you list all local branches in a Git repository?
How can you list branches that match a specific pattern in Git?
What command do you use to list all branches, both locally and remotely, in Git?
How can you display more detailed information about branches in Git?
What command is used to list remote branches in Git?
What does the git ls-remote --heads origin command do?