Reflect on your 2024 year in code

Creating a new branch in Git

Kenny DuMez
Kenny DuMez
Graphite software engineer
Try Graphite


Note

This guide explains this concept in vanilla Git. For Graphite documentation, see our CLI docs.


A branch in Git allows you to diverge from the main line of development and work independently, without affecting other parts of the project. Here, we'll explore how to create a new branch in Git, including various commands and best practices.

In Git, branches are essentially pointers to snapshots of your changes. When you create a branch, you create a new pointer to the current commit. This allows you to move forward with your own development without disturbing the main workflow.

Before creating a new branch, it's a good idea to know where you're branching from. Use the following command to see your current branch and all existing branches:

Terminal
git branch

This command will list all the branches in your repository and mark the current branch with an asterisk (*).

To create a new branch, use the git branch command followed by the name of the new branch. For example, to create a branch named feature-x:

Terminal
git branch feature-x

This command creates a new branch called feature-x but does not switch to it. The new branch is a copy of the branch you were on when you ran the command.

After creating a new branch, you need to switch to it to start making changes. Use the git checkout command to switch branches:

Terminal
git checkout feature-x

Alternatively, you can combine the creation and switching of branches into a single command with git checkout -b:

Terminal
git checkout -b feature-x

This command creates the new branch feature-x and switches to it immediately.

If you're working with a remote repository and want to make your new branch available to others, you need to push it to the remote. Use the following command to push the branch:

Terminal
git push -u origin feature-x

This command pushes the feature-x branch to the remote named origin and sets the upstream, which links your local branch to the remote branch.

  • Naming branches: Use descriptive names for your branches. For example, feature-add-login, bugfix-header, or refactor-authentication.
  • Keeping branches small and focused: Smaller branches are easier to manage and merge than larger ones.
  • Regularly pulling in changes from the main branch: To avoid conflicts, regularly pull changes from the main branch into your feature branch.

For information, see this guide on how to create a new branch in Git from a specific commit.

Git inspired
Graphite's CLI and VS Code extension make working with Git effortless.
Learn more

Built for the world's fastest engineering teams, now available for everyone