Git: List Remote Branches

April 5, 2023


Git branches represent independent development lines in a Git project. Depending on whether the repository is a remote or a local one, there are several different ways to list all the branches.

List your branches to facilitate keeping track of the different codebase versions you're working on. This process also helps users avoid duplicate branches when working on different features or bug fixes.

In this tutorial, you will learn how to list all branches in a remote Git repository.

Git: List remote branches - a tutorial.


How to List Remote Branches in Git?

Listing branches is considered a good practice when collaborating on a project. When you want to create a local branch, check if it already exists in the remote repository by listing the branches.

Note: See how to pull all branches in Git.

Git allows users to use several methods for listing remote branches:

  • git branch -r. Lists all the remote branches.
  • git branch -r -v. Lists all the remote branches with the latest commit hash and commit message.
  • git ls-remote. Lists all the references in the remote repository, including the branches.
  • git remote show [remote_name]. Shows information about the specified remote, including the remote branches.
  • git branch -a. Shows all the local and remote branches.

The sections below explain how to use the methods and provide examples for each one.

Method 1: List Remote Branches

The most straightforward way to list all branches in a remote repository is to use the following command:

git branch -r

Important: To ensure you get all the branches from the remote repository, run the following command first:

git fetch --all

The command downloads the metadata about all the branches on the remote, so the output is complete.

List remote Git branches.

The command outputs a list of all the branches in the remote repository, preceded by the name of the remote that contains the branches.

Method 2: Get Detailed Branch List

Running the above command with the -v (--verbose) flag outputs a list of remote branches and includes the latest commit hash and commit message for each branch. The command is:

git branch -r -v
Output a detailed branch list in Git.

The output shows the remote name, branch name, latest commit hash, and the latest commit message for each branch.

Method 3: List Remote References

The git ls-remote command shows all the references in a remote repository, including the branches. The command is useful when you want to get more information about a remote repository without having to clone it locally.

The syntax is:

git ls-remote [remote_name_or_URL]

Replace [remote_name_or_URL] with the name of the remote repository if it has been added, or with the URL of the repository if you have not added it yet.

For example:

List remote references using the git ls-remote command.

The first column of the output shows the SHA-1 ID of the specified Git object the reference points to. The second column is the name of the reference. The HEAD reference is the currently active branch, and below it is a list of all the branches in the repository.

Note: See how to switch branches in Git and change which one is currently active.

Method 4: Use the show Command

Use the git remote command with the show subcommand to display information about a remote repository, including its URL, branches, and tags.

The syntax is:

git remote show [remote_name]

Replace [remote_name] with the name of the remote repository.

For example:

List remote Git branches using the git remote show command.

The output shows the remote's URL, the current branch, lists the remote branches, and states which local branches are configured for git pull and git push.

Note: Refer to our guide and learn more about git tag commit.

Method 5: Display All Branches

Specify the -a flag with the git branch command to output all the local and remote branches in your repository. Run the following command:

git branch -a
List both remote and local branches in Git.

The output lists the local branches, marks the currently active branch, and then lists all the branches in the remote repository. Listing all branches helps compare the project state in the remote and the local repository. This method allows you to synchronize the changes if there are any.


This tutorial showed how to list all Git branches in a remote repository. Learn more about Git in our Git beginner's guide, or dive deep into Git tags and learn how to use these reference points for marking version releases.

Was this article helpful?
Bosko Marijan
Having worked as an educator and content writer, combined with his lifelong passion for all things high-tech, Bosko strives to simplify intricate concepts and make them user-friendly. That has led him to technical writing at PhoenixNAP, where he continues his mission of spreading knowledge.
Next you should read
How to Squash Commits in Git
March 23, 2023

Squashing commits in Git means combining multiple smaller commits into a large one. This tutorial provides four methods for squashing commits.
Read more
Git Merge Master into Branch
March 22, 2023

This tutorial shows two methods for merging the master branch into another branch in Git. See examples and use cases.
Read more
Git Rebase vs. Git Merge: What's the Difference?
March 15, 2023

Learn about git rebase and git merge, commands that implement changes from a separate branch into the main one.
Read more
How to Use git submodule init
September 28, 2022

The git submodule init command adds submodule entries to the local Git configuration file. This tutorial shows how to use git submodule init and provides usage examples.
Read more