Git Branching

By Xah Lee. Date: . Last updated: .

This page is a basic and practical tutorial on git branching.

How to list branches?

git branch → Show all local branches.

git branch -r → Show all remote branches.

git branch -a → Show all local and remote branches.

git show-branch → Show branches and their commits.

How to find out which is the current branch?

Type git branch. The current branch is indicated by a asterisk *.

git branch 2016 12 16
creating git branch

How to create a branch?

git branch name master → create a branch named name from “master”. The master can also be any {commit ID, branch name, tag name}.

Note: this does not switch you to the newly created branch.

How to switch to a branch (checkout a branch)?

Note: before you switch to a branch, best to commit your changes first.

git checkout branch_name → update current dir's files to be the branch named branch_name's code. (technically: updating the index, working tree, and HEAD to reflect the specified branch.)

How to rename branch?

git branch -m old_name new_name → rename branch.

git branch -M old_name new_name → rename branch, even if there already exists a branch named new_name.

How to merge branch?

WARNING: you should commit before you merge, because, otherwise, when merge has conflicts it's hard to revert to your uncommited pre-merge state.

First, switch to the branch you wan to merge to. For example, git checkout branch_name.

git merge name → merge a branch named name into the current branch (typically the “master”).

Note: merge won't remove a branch. After you merge, you can remove a branch by git branch -d branch_name

How to remove/delete a branch?

git branch -d branch_name → delete the branch. (the branch must be merged first)

git branch -D branch_name → force delete the branch.

2014-01-18 thanks to Nick Alcock for help.

If you have a question, put $5 at patreon and message me.


  1. Install git
  2. Git Basics
  3. Git Ignore File
  4. Commit Files
  5. Push to Server
  6. Pull from Server
  7. Find Difference
  8. View Log
  9. Revert Change
  10. Branching
  11. Temp Save: git stash
  12. What's HEAD
  13. FAQ