Re: [Q] push refspec with wildcard pushes all matching branches
- From
Bert Wesarg <bert.wesarg@googlemail.com>
- Date
- Jan 25, 2020, 07:38 UTC
- Message-ID
- <b4c31e50-6da5-7699-1069-d94091f768bd@googlemail.com>
- In-Reply-To
- <20200125003836.GA568952@coredump.intra.peff.net>
On 25.01.20 01:38, Jeff King wrote:
Show 32 quoted lines
> On Fri, Jan 24, 2020 at 09:29:53PM +0100, Bert Wesarg wrote: > >> I'm a little confused, that a push refspec with a wildcard changes the number of branches pushed. > > I'm confused about which part you're confused about. :) > >> $ git push --dry-run >> To ../bare.git >> * [new branch] master -> master >> $ git config remote.origin.push 'refs/heads/master*:refs/remotes/origin/master*' >> $ git push --dry-run >> To ../bare.git >> * [new branch] master -> origin/master >> * [new branch] master-two -> origin/master-two >> >> Is this expected behavior? > > You asked it to push master*, so it did. > > Is your confusion that you had set push.default to "current"? If there > is a refspec (either in the config or specified on the command line), > then that takes precedence over push.default. > > From git-push(1): > > When the command line does not specify what to push with <refspec>... > arguments or --all, --mirror, --tags options, the command finds the > default <refspec> by consulting remote.*.push configuration, and if it > is not found, honors push.default configuration to decide what to push > (See git-config(1) for the meaning of push.default). > > If that's not it, can you clarify what you expected to happen?
thanks for this pointer. My initial pointer was the help for push.default:
From git-config(1):
push.default
Defines the action git push should take if no refspec is explicitly
given. Different values are well-suited for specific workflows; forThus I expected, that this takes effect, when just calling 'git push'.
What I actually want to achieve, is to track a remote branch with a different name locally, but 'git push' should nevertheless push to tracked remote branch.
In my example above, befor adding the 'push.origin.push' refspec, rename the branch:
$ git branch -m local
$ git push --dry-run
To ../bare.git
* [new branch] local -> localIs it possible that this pushes to the tracked branch automatically, and because I have multiple such branches, without the use of a push refspec.
Thanks for the help.
Best, Bert
> > -Peff >