Re: [Question] Fetching a new branch from remote
- From
- Carl Baldwin <cnb@fc.hp.com>
- Date
- Dec 2, 2005, 15:50 UTC
- Message-ID
- <20051202155047.GA14547@hpsvcnb.fc.hp.com>
- In-Reply-To
- <7vk6eoinqa.fsf@assigned-by-dhcp.cox.net>
The documentation below does make this more clear. Now that you've explained it I can see it useful to fetch a remote head without creating a local one. I simply hadn't thought of this scenerio.
Thank you for the explanation.
Cheers, Carl
On Thu, Dec 01, 2005 at 12:09:01PM -0800, Junio C Hamano wrote:
Show 55 quoted lines
> Carl Baldwin <cnb@fc.hp.com> writes: > > > I would expect this to do it: > > > > % git fetch -f <url> new-branch > > > > But, it doesn't. > > > > Actually, I just noticed that this accomplishes the desired result... > > > > % git fetch <url> new-branch:new-branch > > First, '-f' means "allow overriding the fast-forward check when > updating an existing branch". This can be done per refspec by > saying "+rbranch:lbranch" but if you are fetching more than one > remote branches at once (especially through "remotes" shorthand) > the option can be used to allow override of all of them. > > A single token <refspec> defaults to "<refspec>:" (meaning, > "fetch but do not muck with our branches") is deliberate. When > I get a pull request "please pull from git://u/r/l/ send2junio branch", > I do not "git pull git://u/r/l/ send2junio" right away, but do > "git fetch git://u/r/l/ send2junio" and inspect FETCH_HEAD with > various combinations of "git diff master..FETCH_HEAD" and > friends. I do _not_ want it to create send2junio branch in my > repository with that. Also "git pull git://u/r/l/ send2junio" > would internally run "git fetch git://u/r/l/ send2junio" and > then runs merge, and I do not want that to create send2junio > branch in my repository either. The latter could be prevented by > adding an extra flag to git-fetch to tell it not to default > a single token <refspec> to "<refspec>:<refspec>" and pass that > flag from git-pull, though. > > I just found out that the documentation for '-f' flag is simply > missing. I'd propose to add the following. Thanks for noticing. > > -- >8 -- > diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt > index a25d04a..200c9b2 100644 > --- a/Documentation/fetch-options.txt > +++ b/Documentation/fetch-options.txt > @@ -4,6 +4,11 @@ > option old data in `.git/FETCH_HEAD` will be overwritten. > > -f, \--force:: > + When `git-fetch` is used with `<rbranch>:<lbranch>` > + refspec, it refuses to update the local branch > + `<lbranch>` unless the remote branch `<rbranch>` it > + fetches is a descendant of `<lbranch>`. This option > + overrides that check. > > -t, \--tags:: > By default, the git core utilities will not fetch and store > >
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Carl Baldwin Systems VLSI Laboratory Hewlett Packard Company MS 88 work: 970 898-1523 3404 E. Harmony Rd. work: Carl.N.Baldwin@hp.com Fort Collins, CO 80525 home: Carl@ecBaldwin.net - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -