mdesantis
mdesantis

Reputation: 8517

git pull displays "fatal: Couldn't find remote ref refs/heads/xxxx" and hangs up

I created a branch called 6796, then I pushed it to remote, checked it out on another machine, made other edits, pushed it, then merged it with master, and deleted it locally and remotely on the other machine (git push :6796). Now, when I run git pull:

fatal: Couldn't find remote ref refs/heads/6796
user@host:~/path/to/repo$ fatal: The remote end hung up unexpectedly

but git pull origin master works normally. It seems to me that there is a 6796 reference somewhere... how to resolve this?

Upvotes: 125

Views: 301632

Answers (10)

user14805138
user14805138

Reputation: 61

I had the same issue. But in my case it was due to my branch's name. The branch's name automatically set in my GitHub repo as main instead of master.

git pull origin master 

(did not work).

I confirmed in GitHub if the name of the branch was actually master and found the the actual name was main. so the commands below worked for me.

git pull origin main 

Upvotes: 6

yair
yair

Reputation: 9255

In my case, it was the "Lightweight checkout" checkbox that was checked by default, while, as it happens, I needed it unchecked. Can you spot it?

enter image description here

I didn't investigate why did it cause such an abrupt error, but since it blocked my Jenkins jobs for a couple of hours, I felt it's worth sharing on top of the other answers here.

Upvotes: 15

Padmanabha V
Padmanabha V

Reputation: 459

In my case, it happenned for the master branch. Later found that my access to the project was accidentally revoked by the project manager. To cross-check, I visited the review site and couldn't see any commits of the said branch and others for that project.

Upvotes: 0

Darius.V
Darius.V

Reputation: 938

I have same error. Problem was that branch was deleted, released. But in PhpStorm I still could see it in remote branches. I could checkout as local branch. And then doing git pull was giving this error.

So need to check if this brnach really exists remotely.

Upvotes: 1

polyccon
polyccon

Reputation: 731

To pull a remote branch locally, I do the following:

git checkout -b branchname // creates a local branch with the same name and checks out on it

git pull origin branchname // pulls the remote one onto your local one

The only time I did this and it didn't work, I deleted the repo, cloned it again and repeated the above 2 steps; it worked.

Upvotes: 4

ikaruss
ikaruss

Reputation: 491

This error could be thrown in the following situation as well.

You want to checkout branch called feature from remote repository but the error is thrown because you already have branch called feature/<feature_name> in your local repository.

Simply checkout the feature branch under a different name:

git checkout -b <new_branch_name> <remote>/feature

Upvotes: 4

santiaago
santiaago

Reputation: 612

I had a similar issue when I tried to get a pull with a single quote ' in it's name.

I had to escape the pull request name:

git pull https://github.com/foo/bar namewithsingle"'"quote

Upvotes: 3

L_7337
L_7337

Reputation: 2748

I just ran into a similar issue when I tried to commit to a newly created repo with a "." in it's name. I've seen several others have different issues with putting a "." in the repo name.

I just re-created the repo and

replaced "." with "-"

There may be other ways to resolve this, but this was a quick fix for me since it was a new repo.

Upvotes: 3

jweyrich
jweyrich

Reputation: 32260

You also have to delete the local branch:

git branch -d 6796

Another way is to prune all stale branches from your local repository. This will delete all local branches that already have been removed from the remote:

git remote prune origin --dry-run

Upvotes: 28

Karl Bielefeldt
Karl Bielefeldt

Reputation: 49128

There are probably some commands to resolve it, but I would start by looking in your .git/config file for references to that branch, and removing them.

Upvotes: 234

Related Questions