How to Fix Fatal: The Current Branch Master Has No Upstream Branch Error in Git

John Wachira Mar 13, 2025 Git Git Error
  1. Method 1: Set the Upstream Branch Manually
  2. Method 2: Create a New Branch with Upstream Tracking
  3. Method 3: Use Git Config to Set Default Upstream Branch
  4. Method 4: Verify Remote Branches
  5. Conclusion
  6. FAQ
How to Fix Fatal: The Current Branch Master Has No Upstream Branch Error in Git

Git is an essential tool for developers, allowing for efficient version control and collaboration. However, encountering errors can be frustrating, especially when they halt your progress. One common issue is the “fatal: The current branch master has no upstream branch” error. This typically occurs when you create a new branch but forget to link it to a remote branch. Fortunately, fixing this error is straightforward, and there are several methods to resolve it.

In this article, we’ll explore different methods to fix the “fatal: The current branch master has no upstream branch” error in Git. By the end, you’ll have a solid understanding of how to establish an upstream branch and avoid this error in the future. Whether you’re a beginner or an experienced Git user, these solutions will help you get back on track quickly.

Method 1: Set the Upstream Branch Manually

One of the simplest ways to resolve this error is to manually set the upstream branch for your current branch. This can be done using the git push command with specific flags. By establishing a connection between your local branch and the remote branch, you can effectively eliminate the error.

To set the upstream branch manually, run the following command:

git push --set-upstream origin master

Output:

Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 321 bytes | 321.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/username/repo.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

This command does two things: it pushes your local changes to the remote repository and sets the upstream branch for your local branch. The --set-upstream flag tells Git to link the local branch to the specified remote branch, in this case, master on origin. After running this command, you should no longer see the upstream error when you try to push or pull changes.

Method 2: Create a New Branch with Upstream Tracking

If you find yourself frequently encountering this error, you might consider creating a new branch that automatically tracks the upstream branch. This can save you time and hassle in the long run. To create a new branch with upstream tracking, use the following command:

git checkout -b new-branch-name --track origin/master

Output:

Switched to a new branch 'new-branch-name'

In this command, checkout -b new-branch-name creates a new branch called new-branch-name, and the --track origin/master option sets it to track the master branch from the origin remote. This way, when you push changes from new-branch-name, Git will automatically know where to send them, preventing any upstream errors. This method is especially useful for new projects where you want to establish a clear workflow from the start.

Method 3: Use Git Config to Set Default Upstream Branch

Another effective method to fix the upstream error is to configure Git to set a default upstream branch for all your future branches. This can be particularly beneficial if you’re working on multiple projects and want to avoid the repetitive task of setting upstream branches manually. You can achieve this by modifying your Git configuration.

Run the following command:

git config --global push.default current

Output:

By setting the push.default configuration to current, Git will automatically use the current branch as the default upstream branch when you push changes. This means that whenever you create a new branch and push it for the first time, Git will automatically set it to track the corresponding remote branch. This approach simplifies your workflow and minimizes the chances of encountering the upstream error in the future.

Method 4: Verify Remote Branches

Sometimes, the error may stem from the fact that the remote branch you are trying to push to doesn’t exist yet. In such cases, it’s essential to verify the existing remote branches before attempting to set an upstream branch. You can check your remote branches with the following command:

git branch -r

Output:

  origin/HEAD -> origin/master
  origin/master

This command lists all remote branches. If you don’t see the branch you want to track, you may need to create it first. You can do this by pushing your local branch to the remote repository:

git push origin master

Output:

Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 321 bytes | 321.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/username/repo.git
 * [new branch]      master -> master

Once the branch exists on the remote, you can set it as the upstream branch using the methods mentioned earlier. Verifying your remote branches ensures you are not trying to link to a non-existent branch, which can save you time and frustration.

Conclusion

Encountering the “fatal: The current branch master has no upstream branch” error in Git can be a common stumbling block, but it’s easily fixable. By following the methods outlined in this article, you can establish an upstream branch, create new branches with tracking, and even set default configurations to streamline your workflow. Whether you’re pushing changes for the first time or managing multiple branches, understanding how to handle upstream branches is crucial for a smooth development experience. With these solutions in your toolkit, you’ll be well-equipped to tackle any Git-related challenges that come your way.

FAQ

  1. What does the error fatal: The current branch master has no upstream branch mean?
    This error means that your local branch is not linked to any remote branch, preventing you from pushing or pulling changes.

  2. How can I check my remote branches in Git?
    You can check your remote branches by using the command git branch -r, which lists all branches available on the remote repository.

  3. Can I set an upstream branch for an existing branch?
    Yes, you can set an upstream branch for an existing branch using the command git push –set-upstream origin branch-name.

  4. What is the purpose of the –track option in Git?
    The –track option is used when creating a new branch to automatically set it to track a specified remote branch.

  5. How can I avoid the upstream branch error in the future?
    You can avoid this error by setting default push configurations or creating new branches with tracking options from the beginning.

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
Author: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Related Article - Git Error