From: Mathias Kunter Date: Fri, 28 May 2021 06:29:49 GMT Subject: git push doesn't use local branch name as default Message-ID: In-Reply-To: <3b9bc214-a30a-ba49-af96-7eeaf37b7bbd@gmail.com> 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`. 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? If `simple` pushing is used, it doesn't seem to make sense for me to fallback to `current` on branches which *do* have an upstream, but to error out on branches which do *not* have an upstream. Cheers Mathias Kunter Am 27.05.21 um 21:51 schrieb Felipe Contreras: > Mathias Kunter wrote: >> Hi all, >> >> at https://git-scm.com/docs/git-push#_description it says: >> >>> When neither the command-line nor the configuration specify what to >>> push, the default behavior is used, which corresponds to the simple >>> value for push.default: the current branch is pushed to the >>> corresponding upstream branch, but as a safety measure, the push is >>> aborted if the upstream branch does not have the same name as the local >>> one. >> >> However, on a branch which does *not* have an upstream branch >> configured, the command >> >>> git push >> >> doesn't use the local branch name as default, > > Yes it does, but only on the src side of the refspec. Something like: > > git push : > > (invalid refspec) > > Note the remote side is missing, so git doesn't know where to push to. > >> Note that it *does* work if the remote branch name is explicitly specified: >> >>> git push > > In that case git assumes you mean :. > > Sounds like you want to change the default to `push.default=current`. > > Cheers. >