Re: Git Errors for local refs
- From
Jeff King <peff@peff.net>
- Date
- Aug 21, 2008, 20:24 UTC
- Message-ID
- <20080821202414.GD27705@coredump.intra.peff.net>
- In-Reply-To
- <63013335-CBB4-43E5-9538-204828805849@mac.com>
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 branchesAre you seeing any other error output from your fetch? If so, what does it say?
-Peff