threads / discuss / 22120

Strange happening with 'git fetch'

Subject: Strange happening with 'git fetch'

## tl;dr

2 messages between Jan 7, 2010 and Jan 7, 2010.

replies: 1people: 2as markdown or json

David Kirk· Jan 7, 2010, 17:59 UTC · lore

This is very strange, and defies the understanding of everyone in the office familiar with git.  Is it a bug, or some feature we don't understand?

Basically, when I do a 'git fetch', it updates my local repository. Now nobody else is doing anything, so the remote repository does not change.  Doing another 'git fetch' should report that nothing needs to be done and nothing should change.  But instead, it reports something about the remote HEAD, and changes my local branch 'master' to some strange location!  Running 'git fetch' again restores it to the correct state, reporting that it is updating 'master'.  Repeated invocations will toggle between these two results.  Below is a transcript from the bash shell.

Can someone please explain this?
---- bash console ----
dkirk@RI-ENG-21 /c/Dev/TSWeb2 (master)
$ git fetch
From //10.18.0.53/git/repos/WebTrading
 + 03c60a4...209b0bc HEAD       -> origin/HEAD  (forced update)
dkirk@RI-ENG-21 /c/Dev/TSWeb2 (master)
$ git fetch
From //10.18.0.53/git/repos/WebTrading
 + 209b0bc...03c60a4 master     -> origin/master  (forced update)
dkirk@RI-ENG-21 /c/Dev/TSWeb2 (master)
$ git fetch
From //10.18.0.53/git/repos/WebTrading
 + 03c60a4...209b0bc HEAD       -> origin/HEAD  (forced update)
dkirk@RI-ENG-21 /c/Dev/TSWeb2 (master)
$ git fetch
From //10.18.0.53/git/repos/WebTrading
 + 209b0bc...03c60a4 master     -> origin/master  (forced update)

Thanks, -David

Ilari Liusvaara· Jan 7, 2010, 18:07 UTC · re: David Kirk · lore

Re: Strange happening with 'git fetch'

On Thu, Jan 07, 2010 at 11:59:39AM -0600, David Kirk wrote:
Show 15 quoted lines
> This is very strange, and defies the understanding of everyone in the
> office familiar with git.  Is it a bug, or some feature we don't
> understand?
> 
> Basically, when I do a 'git fetch', it updates my local repository.
> Now nobody else is doing anything, so the remote repository does not
> change.  Doing another 'git fetch' should report that nothing needs to
> be done and nothing should change.  But instead, it reports something
> about the remote HEAD, and changes my local branch 'master' to some
> strange location!  Running 'git fetch' again restores it to the
> correct state, reporting that it is updating 'master'.  Repeated
> invocations will toggle between these two results.  Below is a
> transcript from the bash shell.
> 
> Can someone please explain this?

I have seen that before. Looks like you have local branch 'HEAD' (_not_ the special ref HEAD) on remote side and that is messing it up.

ls-remote'ing the repository shows 'refs/heads/HEAD', right (there's also HEAD, that's the required special ref)?

-Ilari

← back to recent threads