Replace Master Branch with Another Branch in GIT

Introduction

In Git, the master branch traditionally serves as the primary development branch. However, there are scenarios where you might want to replace the contents of the master branch with those of another branch. This can happen for several reasons:

  • Renaming the default branch (e.g., switching from master to main).
  • Changing the primary development branch (e.g., a feature-branch becomes the new main branch).
  • Reverting the master branch to an earlier state or different implementation.

This guide will walk you through the safe and effective steps to replace the master branch with another branch, discuss advantages and disadvantages, and provide examples for clarity.


Why Replace the Master Branch?

Before making significant changes to your repository, it’s important to understand why you might want to replace the master branch.

Advantages:

Better Branch Management – Aligns the default branch with the new development focus. ✅ Corrects Mistakes – If master contains incorrect or unwanted changes, it can be replaced. ✅ Keeps the Repository Organized – Helps in maintaining a cleaner, well-structured project. ✅ Enhances Collaboration – A renamed or updated master branch can follow modern naming conventions (e.g., main).

Disadvantages:

Potential Data Loss – If not done correctly, replacing master can result in loss of commits. ⚠ Breaks Dependencies – If external scripts or CI/CD pipelines depend on master, they may break. ⚠ Requires Force Push – Force-pushing changes to master can overwrite important work.


Steps to Replace the Master Branch

To safely replace the master branch with another branch (feature-branch), follow these steps carefully.

Step 1: Ensure Your Working Directory is Clean

Before making changes, check if your working directory has uncommitted changes.

git status

If there are uncommitted changes, either commit them:

git add .
git commit -m "Save changes before replacing master branch"

Or stash them:

git stash

This ensures that no uncommitted changes are lost during the process.


Step 2: Switch to the Branch You Want to Replace Master With

Checkout the branch that you want to use to replace master.

git checkout feature-branch

Step 3: Update the Branch to Be Up-to-Date

To ensure that your branch has the latest changes from the remote repository, run:

git pull origin feature-branch

This fetches and merges the latest changes from the remote branch to your local branch.


Step 4: Delete the Master Branch Locally

Since Git doesn’t allow renaming a branch while on it, first, switch to another branch (already done in Step 2) and then delete the local master branch.

git branch -D master

This removes master locally, but it still exists in the remote repository.


Step 5: Rename the Current Branch to Master

Now, rename the branch you want to become the new master.

git branch -m master

This step renames feature-branch to master locally.


Step 6: Force Push the New Master Branch to Remote

Now, force push the updated master branch to the remote repository.

git push origin master --force

Warning: This step overwrites the existing master branch on the remote. Ensure that you have backups or that all team members are aware of this change.


Step 7: Verify the Changes

After pushing the changes, verify that the remote master branch has been updated successfully.

git fetch origin
git checkout master
git log

Review the commit history to confirm that the new master branch matches the one you replaced it with.


Replace Master Branch with Another Branch in GIT – Example Scenarios

Example 1: Replacing master with a develop branch

If your team decides that the develop branch should become the main branch, follow these steps:

git checkout develop
git pull origin develop
git branch -D master
git branch -m master
git push origin master --force

Example 2: Reverting master to an earlier branch state

If you want to reset master to an older state (e.g., an earlier release version), you can checkout that specific branch and follow the same replacement steps.

git checkout release-v1.0
git branch -D master
git branch -m master
git push origin master --force

This makes sure master is set back to the previous stable release.


Common Issues and Troubleshooting

1. Remote Master Branch Still Exists

If you deleted master locally but it’s still present in the remote, delete it explicitly:

git push origin --delete master

Then push the new master:

git push origin master --force

2. Other Developers Still Have the Old Master

If others still have the old master branch, they should delete it locally and fetch the new one:

git branch -D master
git fetch origin
git checkout master

3. Avoiding Data Loss

Before force pushing, make sure that all necessary changes are backed up or stored in another branch:

git checkout master
git branch backup-master

This creates a backup of master before replacing it.


Best Practices for Replacing Master Branch

Communicate with Your Team – Inform collaborators before making major changes. ✔ Backup Before Replacing – Always create a backup of the existing master. ✔ Use Feature Branches for Testing – Test changes before merging them into master. ✔ Check CI/CD Integrations – Ensure automated workflows and pipelines are updated accordingly. ✔ Use Tags for Reference – Tag previous versions of master before replacing it:

git tag old-master-backup master
git push origin old-master-backup

Conclusion

Replacing the master branch with another branch in Git is a powerful but potentially risky operation. By following the steps outlined in this guide, you can safely replace master, avoid unnecessary conflicts, and ensure a smooth transition.

Always double-check before force-pushing, communicate changes with your team, and keep a backup to prevent any accidental data loss. By managing branches effectively, your Git workflow remains efficient and error-free.

For more details, refer to the official Git documentation.

Explore more about how to merge git branch into master​

Related articles

How to Create a Virtual Network in Azure

🚀 How to Create a Virtual Network in Azure – A Complete Step-by-Step Guide 🌐 Introduction to Azure Virtual...

How to Create a Load Balancer on GCP

🌐 How to Create a Load Balancer on GCP 💡 What Is a Load Balancer in GCP? A load balancer...

Deploy Web App Using GitHub in Azure

Deploy Web App Using GitHub in Azure Introduction GitHub Actions is a powerful workflow automation tool integrated into GitHub, making...

Disaster Recovery Automation

Disaster Recovery Automation Disaster recovery (DR) is a crucial practice for maintaining business continuity during unexpected disruptions such as...