From: Bert Wesarg Date: Sat, 25 Jan 2020 07:38:04 GMT Subject: Re: [Q] push refspec with wildcard pushes all matching branches Message-ID: In-Reply-To: <20200125003836.GA568952@coredump.intra.peff.net> On 25.01.20 01:38, Jeff King wrote: > 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 ... > arguments or --all, --mirror, --tags options, the command finds the > default 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; for Thus 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 -> local Is 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 >