Git development
 help / color / mirror / Atom feed
* [PATCH 0/6] status, push: handle a push branch rebased onto a newer upstream
@ 2026-10-06  7:08 Harald Nordgren via GitGitGadget
  2026-10-06  7:08 ` [PATCH 1/6] status: count push divergence outside the upstream Harald Nordgren via GitGitGadget
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Harald Nordgren via GitGitGadget @ 2026-10-06  7:08 UTC (permalink / raw)
  To: git; +Cc: Harald Nordgren

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-10-06  7:08 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-06  7:08 [PATCH 0/6] status, push: handle a push branch rebased onto a newer upstream Harald Nordgren via GitGitGadget
2026-10-06  7:08 ` [PATCH 1/6] status: count push divergence outside the upstream Harald Nordgren via GitGitGadget
2026-10-06  7:08 ` [PATCH 2/6] status: say when the push branch was rebased cleanly Harald Nordgren via GitGitGadget
2026-10-06  7:08 ` [PATCH 3/6] status: suggest a force push after a clean rebase Harald Nordgren via GitGitGadget
2026-10-06  7:08 ` [PATCH 4/6] push: name the branch to pull from when it is not the upstream Harald Nordgren via GitGitGadget
2026-10-06  7:08 ` [PATCH 5/6] push: offer a force push after rewriting pushed commits Harald Nordgren via GitGitGadget
2026-10-06  7:08 ` [PATCH 6/6] push: suggest a force push after a clean rebase Harald Nordgren via GitGitGadget

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox