Re: git push doesn't use local branch name as default
- From
Mathias Kunter <mathiaskunter@gmail.com>
- Date
- May 28, 2021, 08:51 UTC
- Message-ID
- <287483ba-d682-6d04-23fa-22c33ab70376@gmail.com>
- In-Reply-To
- <f9f38d42-2b93-0d3b-798b-4c6f44eb111d@gmail.com>
Note that git itself also claims this should be working. If I do a "git push" on a branch without upstream, I will get:
Show 8 quoted lines
> fatal: No configured push destination. > Either specify the URL from the command-line or configure a remote repository using > > git remote add <name> <url> > > and then push using the remote name > > git push <name>
However, the advised "git push <name>" command won't work on that branch with the default settings of Git. To make it work, `simple` pushing would have to use `current` behavior on a branch without upstream.
Please consider changing that. Thank you.
Cheers Mathias Kunter
Am 28.05.21 um 09:44 schrieb Mathias Kunter:
Show 51 quoted lines
>> you only get the "current" behavior when fetch_remote is non-NULL. > > Well, then my suggestion actually is to also use the `current` behavior > when fetch_remote is NULL - i.e. change > >> return (fetch_remote && fetch_remote != remote); > > to > >> return (!fetch_remote || fetch_remote != remote); > > I'd argue that if `simple` pushing is used, then the expected behavior > of the command > >> git push <remote_name> > > on a branch without upstream would actually be to use the `current` > behavior instead of bailing out with an error. > > > Am 28.05.21 um 09:00 schrieb Elijah Newren: >> On Thu, May 27, 2021 at 11:39 PM Mathias Kunter >> <mathiaskunter@gmail.com> wrote: >>> >>> Felipe, >>> >>> thanks for your reply. >>> >>>> Sounds like you want to change the default to `push.default=current`. >>> >>> Yes, but shouldn't `simple` pushing also work? The documentation says >>> about `push.default=simple`: >>> >>>> When pushing to a remote that is different from the remote you normally >>>> pull from, work as `current`. >> >> Perhaps this wording should be clarified to read >> >> When you have a remote that you normally pull from but you are pushing >> to a different remote then that one, then work as 'current'. >> >>> If there is no upstream, then there also is no "remote I normally pull >>> from", and thus, according to the doc, `simple` should actually work >>> like `current` in this case. Am I wrong here? >> >> The relevant code is >> >> return (fetch_remote && fetch_remote != remote); >> >> so you only get the "current" behavior when fetch_remote is non-NULL. >>