Create New Branch in Git and Push Code​.

Introduction

Branching is one of the most powerful features of Git, allowing developers to work independently on different features, bug fixes, or experiments without affecting the main codebase. A Git branch is a separate line of development that enables teams to work efficiently and merge only the final, tested changes.

This guide will cover how to create a new Git branch, push the code, and follow best practices to maintain a well-organized repository. We will also discuss the advantages, disadvantages, and common challenges associated with Git branches.


Why Use Git Branches?

Git branches provide a way to develop and test features in isolation before integrating them into the main project.

Advantages of Git Branching

Parallel Development – Multiple developers can work on different features simultaneously. ✅ Bug Fixing – Allows quick patches without affecting ongoing development. ✅ Feature Isolation – Prevents incomplete features from being merged into the production code. ✅ Safe Experimentation – Developers can try new ideas without disrupting the main branch.

Disadvantages of Git Branching

Merge Conflicts – Long-lived branches may diverge significantly, leading to complex merges. ⚠ Branch Overload – Too many untracked branches can clutter the repository. ⚠ Lack of Synchronization – If developers do not regularly update branches, integration issues may arise.


Commands to Create a New Branch in Git

1. Create a New Git Branch

To create a new branch, use:

git branch <branch_name>

This will create a new branch without switching to it.

2. Create and Switch to a New Branch

To create and immediately switch to the new branch, use:

git checkout -b <branch_name>

3. View Available Branches

To list all local branches:

git branch

To list all remote branches:

git branch -r

How to Push a New Git Branch to Remote

Once a new branch is created and changes have been made, it must be pushed to the remote repository so that other developers can access it.

Step 1: Ensure You’re on the Correct Branch

git checkout <branch_name>

Step 2: Add and Commit Changes

git add .
git commit -m "Added new feature in <branch_name>"

Step 3: Push the Branch to Remote Repository

git push -u origin <branch_name>

The -u flag sets the upstream branch, so future git push commands will automatically reference the correct branch.

Step 4: Verify the Branch is Published

To check if the branch exists remotely:

git branch -r

Or, visit your repository on GitHub/GitLab and check the branches.


Switching Between Branches

To switch to an existing branch:

git checkout <branch_name>

To switch and update to the latest changes:

git checkout <branch_name>
git pull origin <branch_name>

Merging a Git Branch

Once work in the new branch is completed and tested, it can be merged into the main branch.

Step 1: Switch to Main Branch

git checkout main

Step 2: Merge the Branch

git merge <branch_name>

Step 3: Push the Merged Changes

git push origin main

Handling Merge Conflicts

If the branch has diverged significantly from main, merge conflicts may occur. Follow these steps to resolve them:

Step 1: Attempt to Merge

git merge <branch_name>

If conflicts occur, Git will display affected files.

Step 2: Manually Resolve Conflicts

Open each conflicted file, look for conflict markers (<<<<<<<, =======, >>>>>>>), and decide which changes to keep.

Step 3: Stage the Resolved Files

git add <resolved_file>

Step 4: Complete the Merge

git commit -m "Resolved merge conflicts"

Step 5: Push Changes

git push origin main

Example Scenario: Creating and Pushing a Feature Branch

Imagine you’re working on a new user authentication feature and need to create a separate branch to develop it.

Steps:

# Navigate to project folder
cd my-project

# Create and switch to a new branch
git checkout -b feature-authentication

# Make changes and commit
echo "User login system" > auth.txt
git add auth.txt
git commit -m "Added user authentication system"

# Push the branch to remote repository
git push -u origin feature-authentication

Now, the feature-authentication branch is available for review on GitHub.


Git Best Practices for Branching

Use Meaningful Branch Names – Example: feature/login-page instead of branch1. ✔ Commit Frequently – Regular commits keep work organized. ✔ Pull the Latest Changes – Sync with main to prevent conflicts. ✔ Test Before Merging – Ensure that the feature works before merging. ✔ Use Pull Requests (PRs) – Code reviews improve quality.


Create New Branch in Git and Push Code​ – Troubleshooting Common Git Issues

1. Branch Already Exists Error

If you try to create a branch with a name that already exists, Git will show an error. Use:

git branch -d <branch_name>
git checkout -b <branch_name>

2. Authentication Issues While Pushing

  • Ensure you have set up SSH keys or GitHub credentials.
  • Check remote repository URL:
    git remote -v
    

3. Merge Conflicts

If there are conflicts when merging a branch, manually resolve them and commit the changes.

4. Accidental Branch Deletion

If you mistakenly delete a branch, you can restore it using:

git reflog
git checkout -b <branch_name> <commit_hash>

Conclusion

Creating and pushing a new Git branch is an essential workflow for efficient software development. By following structured branching strategies, keeping branches updated, and merging changes carefully, developers can ensure smooth collaboration.

Key Takeaways:

  • Use git branch and git checkout -b to create and switch branches.
  • Push the branch using git push -u origin <branch_name>.
  • Merge changes after thorough testing.
  • Resolve conflicts manually if needed.
  • Follow best practices to maintain a clean repository.

By mastering Git branching, you will enhance your ability to contribute effectively to projects and collaborate seamlessly with teams.

For more details, refer to the official Git documentation.

Explore More about how to remove merge branch commit in git​

Related articles

How to Secure AWS IAM Roles in Production 2026

How to Secure AWS IAM Roles in Production 2026 Securing AWS IAM roles in production is no longer optional...

Automating Kubernetes Operations | Simplify and Scale Your Workflows

Automating Kubernetes Operations: Simplify and Scale Your Workflows Kubernetes, as a leading container orchestration platform, is powerful but can...

AWS Cost Optimization Strategies for 2026

AWS Cost Optimization Strategies for 2026 Cloud costs continue to rise in 2026 as organizations scale AI workloads, containerized...

Installing a Cassandra Cluster Step By Step

Installing a Cassandra Cluster Step By Step Setting Up an Apache Cassandra Cluster 📊Apache Cassandra is a highly scalable, distributed...