Steps only.

How to Create a New Git Branch

current stable releases (Python 3.12+, Node 22, Git 2.4x) on Mac, Linux, and Windows · Last checked · Suggest an edit

You want to work on a feature or fix without touching the main branch. Create a branch, commit on it, and push it when you are ready to share.

Create and switch to the branch

git switch -c feature-name

git switch -c creates the branch and checks it out in one step. Replace feature-name with something descriptive. Branch names cannot contain spaces; use hyphens instead.

On Git versions older than 2.23 the equivalent is:

git checkout -b feature-name

Both commands still work on current Git, and checkout -b appears in plenty of older guides.

Confirm which branch you are on

git branch
* feature-name
  main

The asterisk marks the current branch. git status shows it too, on the first line.

Commit your work

Make changes, then stage and commit as usual:

git add .
git commit -m "Describe the change"

Commits made now belong to feature-name and do not affect main.

Push the branch to the remote

git push -u origin feature-name

-u sets the upstream, so from now on a plain git push or git pull on this branch knows where to go. GitHub and GitLab usually print a link in the output to open a pull request.

Start from a clean, up-to-date main. A new branch begins at whatever commit you are currently on. Before creating one, run git switch main && git pull so the branch starts from the latest code rather than a stale copy. If git status shows uncommitted changes, commit or stash them first.

To create a branch without switching to it. git branch feature-name creates it and leaves you where you are. Switch later with git switch feature-name.