How do I create a remote Git branch?
Categories:
How to Create and Push a Remote Git Branch

Learn the essential Git commands to create a new branch, commit changes, and push it to a remote repository, enabling collaborative development.
Git branching is a fundamental concept for modern software development, allowing developers to work on new features or bug fixes in isolation without affecting the main codebase. Once work on a branch is complete, it can be merged back into the main branch. This article will guide you through the process of creating a new local Git branch, making changes, and then pushing that branch to a remote repository.
Understanding Git Branches
A branch in Git is essentially a lightweight movable pointer to one of your commits. When you create a new branch, Git creates a new pointer, but it doesn't immediately move you to that branch. The HEAD
pointer indicates which branch you are currently on. Remote branches are references to the state of branches on your remote repository. They are local branches that you can't move; they get moved automatically when you do any network communication with the remote repository.
graph TD A[Start on main/master] --> B{git checkout -b new-feature} B --> C[Local new-feature branch created] C --> D[Make changes & commit] D --> E{git push -u origin new-feature} E --> F[Remote new-feature branch created]
Workflow for creating and pushing a new Git branch.
Creating a Local Branch
Before you can push a branch to a remote repository, you first need to create it locally. It's good practice to ensure your local main
(or master
) branch is up-to-date with the remote before creating a new feature branch from it. This prevents you from basing your new work on an outdated version of the codebase.
1. Step 1: Update your local main branch
Navigate to your repository's root directory in your terminal and switch to your main branch. Then, pull the latest changes from the remote.
2. Step 2: Create and switch to a new branch
Use the git checkout -b
command to create a new branch and immediately switch to it. Replace new-feature-branch
with a descriptive name for your branch.
3. Step 3: Make your changes and commit them
Work on your feature or bug fix. Once you've made changes, stage them using git add .
(or specific files) and then commit them with a meaningful message.
git checkout main
git pull origin main
git checkout -b new-feature-branch
# Make your changes here
git add .
git commit -m "feat: Implement new feature X"
Commands to update main, create a new branch, and commit changes.
feature/user-profile
, bugfix/login-issue
) to make the purpose of the branch clear to others and yourself.Pushing the Local Branch to Remote
Once you've committed your changes to your local branch, the next step is to push this branch to your remote repository. This makes your work visible to other collaborators and allows for code reviews (e.g., via pull requests).
git push -u origin new-feature-branch
Command to push a new local branch to the remote repository.
The -u
flag (or --set-upstream
) is crucial here. It tells Git to set the upstream branch for new-feature-branch
on the origin
remote. This means that from now on, you can simply use git push
and git pull
without specifying the remote and branch name for this particular branch. Git will remember that your local new-feature-branch
tracks origin/new-feature-branch
.
-u
flag the first time, Git will usually prompt you with the exact command to use, which is git push --set-upstream origin <branch-name>
.Verifying the Remote Branch
After pushing, you can verify that your branch exists on the remote repository. You can do this by checking your Git hosting service (GitHub, GitLab, Bitbucket, etc.) or by using a Git command.
git branch -r
Command to list all remote-tracking branches.
This command will show you a list of all remote-tracking branches, and you should see origin/new-feature-branch
among them, confirming your branch is now on the remote.