git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 0/6] status, push: handle a push branch rebased onto a newer upstream

From
Harald Nordgren via GitGitGadget <gitgitgadget@gmail.com>
Date
Oct 6, 2026, 07:08 UTC
Message-ID
<pull.2437.git.git.1791270504.gitgitgadget@gmail.com>

git status now tells when the push branch only differs because your work was rebased onto a newer upstream.

With status.compareBranches including @{push}, when your branch and the push branch have diverged:

 * commits from @{upstream} are counted apart: (1 and 1 not in
   'upstream/main')
 * if the rest carry the same changes on both sides: (rebased cleanly on
   'upstream/main'), with a hint to git push --force-with-lease
 * if nothing came from @{upstream}, the message is unchanged
When git push is rejected because the branch it updates has diverged:
 * if someone else updated your upstream branch, the hint still says git
   pull
 * if you amended or rebased commits you already pushed, the hint offers git
   pull and git push --force-with-lease
 * if they were rebased cleanly, the hint offers git push --force-with-lease
Harald Nordgren (6):
  status: count push divergence outside the upstream
  status: say when the push branch was rebased cleanly
  status: suggest a force push after a clean rebase
  push: name the branch to pull from when it is not the upstream
  push: offer a force push after rewriting pushed commits
  push: suggest a force push after a clean rebase
 builtin/push.c           |  62 ++++++++++++++-
 remote.c                 | 132 +++++++++++++++++++++++++++----
 remote.h                 |   6 ++
 t/t6040-tracking-info.sh | 163 +++++++++++++++++++++++++++++++++++++++
 transport.c              |  42 +++++++++-
 transport.h              |  13 ++--
 6 files changed, 393 insertions(+), 25 deletions(-)
base-commit: 8103b446517e0c44e67561b9d0ccce56efa60a71
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2437%2FHaraldNordgren%2Fstatus-push-not-in-upstream-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2437/HaraldNordgren/status-push-not-in-upstream-v1
Pull-Request: https://github.com/git/git/pull/2437
-- 
gitgitgadget
Next: Harald Nordgren via GitGitGadget
Message 1 of 7 in “status, push: handle a push branch rebased onto a newer upstream”
  1. 0/6 status, push: handle a push branch rebased onto a newer upstreamHarald Nordgren via GitGitGadget, Oct 6, 2026
  2. 1/6 status: count push divergence outside the upstreamHarald Nordgren via GitGitGadget, Oct 6, 2026
  3. 2/6 status: say when the push branch was rebased cleanlyHarald Nordgren via GitGitGadget, Oct 6, 2026
  4. 3/6 status: suggest a force push after a clean rebaseHarald Nordgren via GitGitGadget, Oct 6, 2026
  5. 4/6 push: name the branch to pull from when it is not the upstreamHarald Nordgren via GitGitGadget, Oct 6, 2026
  6. 5/6 push: offer a force push after rewriting pushed commitsHarald Nordgren via GitGitGadget, Oct 6, 2026
  7. 6/6 push: suggest a force push after a clean rebaseHarald Nordgren via GitGitGadget, Oct 6, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.