Hilco Wijbenga <[email protected]> writes:
>> I meant something else than Junio hinted at. Saying
>>
>> git fetch origin master
>> # or by extension
>> git pull origin master
>>
>> does not update the origin/* namespace, not even origin/master. All
>> fetching happens only into FETCH_HEAD. This leads to confusion such as
>> yours because origin/master and thus the upstream tracking displays will
>> not know about the change.
>
> I'll say. Now I'm really confused.
>
> If what you say is true then what is updating origin/master? I've been
> using "git pull" daily for over a year and origin/master is definitely
> getting updated (at least according to gitk).
Now it is really the time for you to go back to "git fetch --help"
and read up on refspecs.
With
$ git fetch origin
you are not telling "fetch" what to fetch, so it goes to your .git/config
and finds remote.origin section to find what refspec to use. They
would say something like
[remote "origin"]
url = ...
fetch = refs/heads/*:refs/remotes/origin/*
meaning (see the manual) "fetch all the branches there, store them
with the corresponding name under refs/remotes/origin".
With
$ git fetch origin master
you are overiding the refspec in .git/config and explicitly saying
"I want to fetch the master branch, but do not want to update
anything with it". It is a short-hand for
$ git fetch origin refs/heads/master
which in turn is a short-hand for
$ git fetch origin refs/heads/master:
If you wanted to update the tracking ref, you would use a refspec
with non-empty strings on the both sides of colon, i.e.
$ git fetch origin master:refs/remotes/origin/master
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html