Skip to content

Pushing to a remote

The toolbar's Push button publishes whatever your branch has that the remote doesn't — its badge counts exactly those commits. There's no confirmation dialog: clicking it pushes immediately, and a toast reports success or failure. A push the remote can't fast-forward — because someone else's commit is already there and yours doesn't build on it — is rejected rather than silently overwriting anything.

Pushing publishes your commits to the remote

The Push button's badge counts the commits your branch has that the remote doesn't. Clicking it publishes them immediately — no confirmation dialog — and a toast confirms it once the remote has them.

Pushing publishes your commits to the remote

Captured from the running app by this scenario.

Do this

  1. Click the toolbar push button

You should see

  • The remote origin has the commit chore: local work not yet pushed on branch main

A rejected push reports the conflict instead of silently failing

A push the remote can't fast-forward — someone else's commit is already there and yours doesn't build on it — is rejected outright rather than overwriting it. The toast names the problem instead of just failing silently, and the remote is left exactly as it was.

A rejected push reports the conflict instead of silently failing

Captured from the running app by this scenario.

Do this

  1. Check out the feature/diverged branch
  2. Click the toolbar push button

You should see

  • A push-rejected error is shown
  • The remote origin branch feature/diverged is unchanged since the last fetch

Deleting a remote branch removes it on the remote

"Delete a remote branch…" removes a branch from everyone's view of the remote, not just yours — which is why it asks for confirmation the local "Delete a local branch…" doesn't. Your own copy is untouched either way; the two deletions are separate actions, same as a tag's are.

Deleting a remote branch removes it on the remote

Captured from the running app by this scenario.

Do this

  1. Open the command palette
  2. Pick Delete a remote branch… from the palette
  3. Pick origin/feature/diverged from the palette
  4. Confirm the remote branch deletion

You should see

  • The remote branch deletion dialog is shown
  • The remote origin no longer has the branch feature/diverged
  • No error notification is displayed

This page is generated from apps/e2e/features/remote-push.feature, the end-to-end test that drives the feature it describes.

MIT licensed · Screenshots exported from the real app by the end-to-end suite.