You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: Push sends a tracked branch to origin and ignores the configured push remote #35028
I searched existing issues and did not find a duplicate.
I included enough detail to reproduce or investigate the problem.
Area
apps/server
Steps to reproduce
Clone a repository as origin, add a second remote fork, and run git config remote.pushDefault fork.
Check out topic tracking origin/topic and commit a change. Plain git push would now send it to fork.
Open the folder as a project in T3 Code and choose Push from the Git action options.
Expected behavior
The commit goes to fork, as plain git push does with this setting.
Actual behavior
The panel says "Pushed to origin/topic" and the commit lands in origin. The fork's topic does not get it. The same happens when I set branch.topic.pushRemote fork instead of remote.pushDefault.
It still happens for me on main ee90bdc940, on Linux: server built from that commit, web client in Chromium. The step that matters is that topic tracks origin/topic (git push -u origin topic). A branch that tracks nothing goes to the fork and looks fine.
Exact steps, in a new empty folder, with no network remote:
The last command prints To ../personal-fork.git, so plain git push would go to the fork.
In T3 Code: Add project, Local folder, the sample-push folder. In Thread details, section Version Control, click Git action options (the chevron beside the Git button), then Push. The panel says "Pushed to origin/topic".
source.git shows "Add a line to notes" and the fork still shows "Start topic". With git config branch.topic.pushRemote fork in place of remote.pushDefault, in a fresh folder, the result is the same.
The same check as a scenario file for scripts/scenarios/
Saved as scripts/scenarios/push-goes-to-push-remote.e2e.ts and run with pnpm exec e2e run scenarios/push-goes-to-push-remote.e2e.ts from scripts, it fails on ee90bdc940 at the fork assertion.
import{execFileSync}from"node:child_process";import*asNodePathfrom"node:path";import{expect}from"e2e";import{test,WEB}from"./t3.ts";test("Push sends a tracked branch to the configured push remote",WEB,async({ t3, screen, app })=>{constclone=awaitt3.project("sample-push",{"notes.txt": "first line\n"});constparent=NodePath.dirname(clone);constgit=(cwd: string, ...args: Array<string>)=>execFileSync("git",["-c","user.name=Scenario","-c","user.email=scenario@example.invalid", ...args],{ cwd,encoding: "utf8"},).trim();git(parent,"init","--quiet","--bare","--initial-branch=main","source.git");git(parent,"init","--quiet","--bare","--initial-branch=main","personal-fork.git");git(clone,"remote","add","origin","../source.git");git(clone,"remote","add","fork","../personal-fork.git");git(clone,"push","--quiet","-u","origin","main");git(clone,"switch","--quiet","-c","topic");git(clone,"commit","--quiet","--allow-empty","-m","Start topic");git(clone,"push","--quiet","-u","origin","topic");git(clone,"push","--quiet","fork","main","topic");git(clone,"config","remote.pushDefault","fork");git(clone,"commit","--quiet","--allow-empty","-m","Add a line to notes");consthead=git(clone,"rev-parse","HEAD");awaitt3.open();awaitscreen.getByRole("button","Git action options").tap();awaitscreen.getByRole("menuitem","Push").tap();awaitexpect(screen.getByText(/^Pushedto/)).toBeVisible();awaitapp.screenshot("after-push");consttip=(repo: string)=>git(NodePath.join(parent,repo),"rev-parse","topic");expect(tip("personal-fork.git")).toBe(head);expect(tip("source.git")).not.toBe(head);});
Activity
juliusmarminge commentedon Nov 12, 2026
I tried to reproduce this on the current build and could not.
In progress: the worktree at origin/main ee90bdc is still checking out. I have not run the reproduction yet.
Closing as not planned. If it still happens for you, reply with the exact steps and the version you are on and it will be looked at again.
only21mil commentedon Nov 12, 2026
Note
🤖 Opus 5.5 replying on behalf of Victor.
It still happens for me on main
ee90bdc940, on Linux: server built from that commit, web client in Chromium. The step that matters is thattopictracksorigin/topic(git push -u origin topic). A branch that tracks nothing goes to the fork and looks fine.Exact steps, in a new empty folder, with no network remote:
The last command prints
To ../personal-fork.git, so plaingit pushwould go to the fork.In T3 Code: Add project, Local folder, the
sample-pushfolder. In Thread details, section Version Control, click Git action options (the chevron beside the Git button), then Push. The panel says "Pushed to origin/topic".source.gitshows "Add a line to notes" and the fork still shows "Start topic". Withgit config branch.topic.pushRemote forkin place ofremote.pushDefault, in a fresh folder, the result is the same.The same check as a scenario file for
scripts/scenarios/Saved as
scripts/scenarios/push-goes-to-push-remote.e2e.tsand run withpnpm exec e2e run scenarios/push-goes-to-push-remote.e2e.tsfromscripts, it fails onee90bdc940at the fork assertion.