Git Branch Management: A Comprehensive Guide

Git is an essential tool for modern developers, and understanding branch management is crucial for effective collaboration. In this post, we'll explore common branch operations that every developer should know.

Checking Your Branches

To see all branches available in your repository (both local and remote), use:

git branch -a

This command shows:

  • Local branches (marked with * for the current branch)

  • Remote tracking branches (prefixed with remotes/origin/)

Working with Remote Branches

Creating a local branch that tracks a remote branch

There are two common ways to create a local branch linked to a remote branch:

  1. Simple tracking:
git checkout --track origin/<branch-name>

It creates a local branch called <branch-name> that tracks the remote branch.

  1. Creating with a different local name:
git checkout -b <local-branch-name> origin/<remote-branch-name>

The second command creates a local branch with your chosen name that tracks the specified remote branch.

Merging Branches

To merge changes from one branch into another:

  1. First, checkout the target branch (where you want to merge changes into):
git checkout main
  1. Then merge the source branch:
git merge feature-branch

Resolve any merge conflicts if they occur, then commit the merge.

Cloning a Repository

To get a copy of a remote repository:

git clone <repository-url>

This creates a local copy with all branches, though only the default branch (usually main or master) is checked out initially.

Deleting Branches

Deleting a local branch:

git branch -d <branch-name>  # Safe delete (checks for unmerged changes)
git branch -D <branch-name>  # Force delete

Best Practices

  1. Regularly prune remote-tracking branches that no longer exist on the remote:
git fetch --prune
  1. Keep your branch list clean by deleting branches you no longer need.

  2. Always verify you're on the correct branch before merging.

Mastering these Git branch operations will make you more efficient in managing code changes and collaborating with your team. Practice these commands in a test repository to build your confidence!

0
Subscribe to my newsletter

Read articles from Abhishek Pratap Singh directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Abhishek Pratap Singh
Abhishek Pratap Singh

DevOps Advocate | Passionate about bridging development & operations to build seamless, scalable systems. Let’s connect and geek out over DevOps, open-source, or the latest in cloud innovation! ✨ Building the future, one pipeline at a time.