Re: Dangers of working on a tracking branch
- From
Jeff King <peff@peff.net>
- Date
- Feb 16, 2007, 15:21 UTC
- Message-ID
- <20070216152130.GA7086@coredump.intra.peff.net>
- In-Reply-To
- <17877.51730.418633.750922@lisa.zopyra.com>
On Fri, Feb 16, 2007 at 09:13:22AM -0600, Bill Lear wrote:
Show 6 quoted lines
> % git pull ../peer_repo topic:topic > [...] > * refs/heads/topic: not updating to non-fast forward branch 'topic' of ../peer_repo > [...] > So, why does it say "not updating to non-fast forward branch", yet > it does the merge and gets the changes anyway?
Because your pull command really means "merge in the topic branch from peer_repo, and while you're at it, store it in my local tracking branch topic". Remember that pull is really a fetch+merge. But the fetch is actually doing _two_ things: putting the fetched branch into FETCH_HEAD, and putting it in into refs/heads/topic. The latter fails (because of a non-fastforward), but pull actually uses the FETCH_HEAD results to do the merge.
Yes, this seems overly complex for what you're doing, but the reason for FETCH_HEAD is to support pulls when you _don't_ have a tracking branch at all (i.e., 'git pull ../peer_repo topic').
-Peff