How to Create and List Local and Remote Git Branches

Updated on

3 min read

Create and List Git Branches

Branches are part of the software development process and one of the most powerful features in Git. Branches are essentially pointers to a certain commit.

When fixing a bug or working on a new feature, developers are creating a new branch that later can be merged into the main codebase.

This article explains how to create and list local and remote Git branches.

List Git Branches

To list all local Git branches use the git branch or git branch --list command:

git branch
* master

The current branch is highlighted with an asterisk *. In this example, that is the master branch.

In Git, local and remote branches are separate objects. If you want to list both local and remote branches pass the -a option:

git branch -a
* master

The -r option tels Git to list only the remote branches.

git branch -r

Creating a Git Branch

Creating a new branch is nothing more than creating a pointer to a given commit.

To create a new local branch, use the git branch command followed by the name of the new branch. For example, to create a new branch named cool-feature, you would type:

git branch cool-feature

The command will return no output. If the branch with the same name already exists, you will see the following error message:

fatal: A branch named 'cool-feature' already exists.

To start working on the branch and adding commits to it, you need to select the branch using git checkout:

git checkout cool-feature

The command will output a message informing you that the branch is switched:

Switched to branch 'cool-feature'

Instead of creating the branch and then switching to it, you can do that in a single command.

When used with the -b option, the git checkout command creates the given branch and switch into it:

git checkout -b cool-feature
Switched to branch 'cool-feature'

From here, you can use the standard git add and git commit commands to add commits to the new branch.

To push the new branch on the remote repository, use the git push command followed by the remote repo name and branch name:

git push remote-repo cool-feature


We have shown you how to list and create local and remote Git branches. Branches are a reference to a snapshot of your changes and have a short life cycle.

With the git branch command, you can also Rename and Delete local and remote Git branches.

If you hit a problem or have feedback, leave a comment below.