Re: [PATCH v3 4/4] doc: git-push: clarify "what to push"
From: D. Ben Knoble <hidden>
Date: 2025-09-28 21:39:06
On Fri, Sep 26, 2025 at 7:07 PM Junio C Hamano [off-list ref] wrote:
"Julia Evans" [off-list ref] writes:quoted
My best guess from my experimentation and from reading some of the commit messages/code is that the rules for how `push.default=simple` works are something like: 1. If the remote you're pushing to is the remote that `git pull` would normally pull from if run without any arguments, then require the user to set an upstream (with the idea that the remote is somehow "special" and should be protected from accidental pushes)This is the traditional 'simple'quoted
2. Otherwise, push to the branch to with the same name without requiring an upstream to be setThis is what 'triangular' feature we saw earlier in the "git log" output in my message you are responding to had a few commits for.quoted
That said, the exact details of how push.default=simple works (ironically) seem complicated enough that I don't think it's worth documenting in detail at the beginning of the `git push` man page.Totally agreed.
Seconded: Julia and I spent quite a bit of time in Discord trying to piece this puzzle back together [1], and while I don't think we found _all_ the commits you listed, we found most of them. My summary was
I think the logic is:
- pushing to the same remote you pull from? Only if @{upstream} is set (?? and maybe something about branch name matching, i don't remember),
- pushing somewhere else? Pushes to destination=same name[1]: https://discord.com/channels/1042895022950994071/1412969828066787462 Getting a clear picture _somewhere_ of this default would probably be nice. -- D. Ben Knoble