There is no tracking information for the current branch

GitGithubGit Pull

Git Problem Overview


I've been using github from a relatively short period, and I've always used the client to perform commits and pulls. I decided to try it from the git bash yesterday, and I successfully created a new repo and committed files.

Today I did changes to the repository from another computer, I've committed the changes and now I'm back home and performed a git pull to update my local version and I get this:

There is no tracking information for the current branch.
    Please specify which branch you want to merge with.
    See git-pull(1) for details

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream develop origin/<branch>

the only contributor to this repo is me and there are no branches (just a master). I'm on windows and I've performed the pull from git bash:

enter image description here

git status:

$ git status
# On branch master
nothing to commit, working directory clean

git branch:

$ git branch
* master

What am I doing wrong?

Git Solutions


Solution 1 - Git

You could specify what branch you want to pull:

git pull origin master

Or you could set it up so that your local master branch tracks github master branch as an upstream:

git branch --set-upstream-to=origin/master master
git pull

This branch tracking is set up for you automatically when you clone a repository (for the default branch only), but if you add a remote to an existing repository you have to set up the tracking yourself. Thankfully, the advice given by git makes that pretty easy to remember how to do.

Solution 2 - Git

See: https://stackoverflow.com/questions/10147475

If like me you need to do this all the time, you can set up an alias to do it automatically by adding the following to your .gitconfig file:

[alias]
    set-upstream = \
       !git branch \
           --set-upstream-to=origin/`git symbolic-ref --short HEAD`

When you see the message There is no tracking information..., run:

 git set-upstream
 git push

Thanks to https://zarino.co.uk/post/git-set-upstream/

Solution 3 - Git

ComputerDruid's answer is great but I don't think it's necessary to set upstream manually unless you want to. I'm adding this answer because people might think that that's a necessary step.

This error will be gone if you specify the remote that you want to pull like below:

git pull origin master

Note that origin is the name of the remote and master is the branch name.


How to check remote's name

git remote -v

2) How to see what branches available in the repository.

git branch -r

Solution 4 - Git

I was trying the above examples and couldn't get them to sync with a (non-master) branch I had created on a different computer. For background, I created this repository on computer A (git v 1.8) and then cloned the repository onto computer B (git 2.14). I made all my changes on comp B, but when I tried to pull the changes onto computer A I was unable to do so, getting the same above error. Similar to the above solutions, I had to do:

git branch --set-upstream-to=origin/<my_branch_name> 
git pull

slightly different but hopefully helps someone

Solution 5 - Git

This happens due to current branch has no tracking on the branch on the remote. so you can do it with 2 ways.

  1. Pull with specific branch name

    git pull origin master

  2. Or you can specific branch to track to the local branch.

    git branch --set-upstream-to=origin/<branchName>

Solution 6 - Git

For anyone who wants to understand why this happens, there are a few relevant concepts:

  • A git repository can have zero or more "remotes", which are named links to other repositories, usually on some central server somewhere. You can list them with "git remote -v"
  • If you clone a repository from another server, a default remote called "origin" will be set up for you.
  • The full syntax for both git push and git pull is to specify a remote name and a branch on that remote.
  • A local branch can be associated with a branch on a remote, so that you don't have to type it each time you pull or push.
  • If you check out a branch from a remote repository using "git switch branchname" or "git switch -u origin/branchname", the association will be set for you. ("git switch" is the same in this case as "git checkout")
  • If you create a branch locally and then push it with "git push -u origin", it will set the association.
  • But if you don't include the "-u" in the initial pull or push, the association won't be stored, so you have to be specific every time.

The solution, as other answers point out, is to set the association with "git branch --set-upstream-to=origin/branchname", where "origin" is the name of the remote, and "branchname" is what the branch is called on the remote server. That's probably the same name it has locally, but it doesn't have to be.

Solution 7 - Git

Step 1

$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=<remote>/<branch> master

Step 2

$ git branch -u origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.

Step 3

$ git pull
Already up to date.

Solution 8 - Git

I run into this exact message often because I create a local branches via git checkout -b <feature-branch-name> without first creating the remote branch.

After all the work was finished and committed locally the fix was git push -u which created the remote branch, pushed all my work, and then the merge-request URL.

Solution 9 - Git

try

   git pull --rebase

hope this answer helps originally answered here https://stackoverflow.com/a/55015370/8253662

Solution 10 - Git

Try using

git push --set-upstream origin <branch_name>

Otherwise

use

git push -u 

will tell you what needs to be done.

Solution 11 - Git

With Git 2.24, you won't have to do

git branch --set-upstream-to=origin/master master
git pull

You will be able to do:

git pull --set-upstream-to=origin/master master

See more at "default remote and branch using -u option - works with push but not pull".

Solution 12 - Git

  1. git branch --set-upstream-to=origin/<master_branch> feature/<your_current_branch>

  2. git pull

Solution 13 - Git

The same thing happened to me before when I created a new git branch while not pushing it to origin.

Try to execute those two lines first:

git checkout -b name_of_new_branch # create the new branch
git push origin name_of_new_branch # push the branch to github

Then:

git pull origin name_of_new_branch

It should be fine now!

Solution 14 - Git

git branch --set-upstream-to=origin/main

Solution 15 - Git

$ git branch --set-upstream-to=heroku/master master and

$ git pull

worked for me!

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionvalerio0999View Question on Stackoverflow
Solution 1 - GitComputerDruidView Answer on Stackoverflow
Solution 2 - GitrjmunroView Answer on Stackoverflow
Solution 3 - GitaerinView Answer on Stackoverflow
Solution 4 - Gitimapotatoe123View Answer on Stackoverflow
Solution 5 - GitKR93View Answer on Stackoverflow
Solution 6 - GitIMSoPView Answer on Stackoverflow
Solution 7 - GitCoconutView Answer on Stackoverflow
Solution 8 - GitRon ReynoldsView Answer on Stackoverflow
Solution 9 - GitMahesh JamdadeView Answer on Stackoverflow
Solution 10 - GitGopalakrishnan TView Answer on Stackoverflow
Solution 11 - GitVonCView Answer on Stackoverflow
Solution 12 - GitMERLIN THOMASView Answer on Stackoverflow
Solution 13 - GitNewtView Answer on Stackoverflow
Solution 14 - GitAmir HussainView Answer on Stackoverflow
Solution 15 - GitMayaView Answer on Stackoverflow