Re: Question about "branch.<name>.merge"
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:50:48
Josh Ralburton [off-list ref] writes:
This is a typical section from a .git config file:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git://git.kernel.org/pub/scm/git/git.git
[branch "master"]
remote = origin
merge = refs/heads/master
I am curious why "branch.master.merge=refs/heads/master" was
implemented to refer to the remote branch (refs/heads/master) rather
than the local branch (refs/remotes/origin/master).
Because conceptually you are merging with the refs/heads/master branch
that exists at the "origin" repository, not merging with a remote tracking
branch that the "origin" repository may have to track its upstream.
It is immaterial that you happen to have a copy of it at your own remote
tracking branch (i.e. refs/remotes/origin/master). If you don't need
tracking branches, you can even do something like this:
[remote "origin"]
url = git://...there
[branch "master"]
remote = origin
merge = refs/heads/master
Notice that you are telling git not to create any remote tracking branches
with this configuration.