threads / discuss / 15134

Git Errors for local refs

Subject: Git Errors for local refs

## tl;dr

2 messages between Aug 21, 2008 and Aug 21, 2008.

replies: 1people: 2as markdown or json

Brian Loomis· Aug 21, 2008, 14:12 UTC · lore

I'm getting the error trying to do a pull from a repos I set up on GitHub yesterday.

error: some local refs could not be updated; try running 'git remote prune origin' to remove any old, conflicting branches

I've run the 'git remote prune origin' but still get the error doing the pull.

Any ideas how to resolve this? Google seems to show me nothing on this and I have also looked at the manual.

I've run the git fsck and git gc but still seem to get these.
TIA
Brian Loomis
Jeff King· Aug 21, 2008, 20:24 UTC · re: Brian Loomis · lore

Re: Git Errors for local refs

On Thu, Aug 21, 2008 at 08:12:42AM -0600, Brian Loomis wrote:
Show 11 quoted lines
> I'm getting the error trying to do a pull from a repos I set up on GitHub 
> yesterday.
>
> error: some local refs could not be updated; try running
> 'git remote prune origin' to remove any old, conflicting branches
>
> I've run the  'git remote prune origin' but still get the error doing the 
> pull.
>
> Any ideas how to resolve this?  Google seems to show me nothing on this 
> and I have also looked at the manual.

Probably google turned up nothing because the error message is new in the latest version of git.

Generally what happens is that the remote used to have some branch "foo", so you have "refs/remotes/origin/foo", but now they deleted it in favor of "foo/bar", so the new remote tracking branch "refs/remotes/origin/foo/bar" conflicts with "refs/remotes/origin/foo" (and the conflict, as you might guess, is an artifact of the storage model for refs, which matches the filesystem semantics).

Running 'git remote prune origin' will see that 'foo' no longer exists at your origin and remove your refs/remotes/origin/foo, and the next fetch will work fine.

But in this case (and I _thought_ every other, but perhaps we are missing one), the full output should have a clue as to what is causing . In a test repo, I get:

  $ git fetch
  error: 'refs/remotes/origin/foo' exists; cannot create 'refs/remotes/origin/foo/bar'
  From /home/peff/foo/parent/
   ! [new branch]      foo/bar    -> origin/foo/bar  (unable to update local ref)
   error: some local refs could not be updated; try running
    'git remote prune origin' to remove any old, conflicting branches

Are you seeing any other error output from your fetch? If so, what does it say?

-Peff

← back to recent threads