On Fri, Jan 12, 2024 at 03:23:58PM +1300, Matthew B. Gray wrote: > Here's what I get from running the documented example: > > λ git config push.default current > λ git config remote.pushdefault myfork > λ git switch -c mybranch origin/main > λ git push > * [new branch] mybranch -> mybranch > branch 'mybranch' set up to track 'myfork/mybranch'. This push step is rewriting your upstream config. Do you have push.autoSetupRemote configured? In general you wouldn't want that for a triangular flow. Though I think it also is only supposed to kick in if there is no tracking configured already. Why did the "git switch" invocation not set up tracking itself? When I run those commands it does. Do you have branch.autoSetupMerge turned off in your config? -Peff