Re: git pull merges current branch even when <dst> is specified
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jun 25, 2009, 09:44 UTC
- Message-ID
- <alpine.DEB.1.00.0906251142550.5365@intel-tinevez-2-302>
- In-Reply-To
- <4A433AC8.4040702@drmicha.warpmail.net>
Hi,
On Thu, 25 Jun 2009, Michael J Gruber wrote:
Show 23 quoted lines
> Tom Lambda venit, vidit, dixit 24.06.2009 18:47: > > > > If I am in 'master' and 'bugfix' is a remote branch in 'repo' which I do not > > have locally yet, running: > > > > git pull repo bugfix:bugfix > > > > creates a new local branch 'bugfix' equals to 'repo/bugfix' as expected. > > However, it also merges 'bugfix' into 'master', that surprises me since I > > explicitly specify that <dst> is 'bugfix'. > > > > I know that I can get what I want by running: > > > > git fetch repo bugfix:bugfix > > > > But the git-pull behavior looks odd to me. I thought that <dst> was the > > current branch by default and it could be overridden by specifying it in the > > command line. > > Well, the first line of git-pull's man page says: > > Runs git-fetch with the given parameters, and calls git-merge to merge > the retrieved head(s) into the current branch.
To explain why this is so: Merging is an operation that requires a working directory, as merge conflicts can happen. That is why merging is only possible locally, and only into the current branch.
Ciao, Dscho