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 <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; 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