git/builtin
Harald Nordgren 84bbe3b61c push: suggest a force push after a clean rebase
After rebasing pushed work onto a newer upstream without changing it,
"git status" says the branch was rebased cleanly, but a rejected
"git push" still suggests pulling from the push branch, which would
only bring back old copies of the same commits.

When the commits outside the upstream carry the same changes on both
sides, say what "git status" says and suggest only the force push:

  hint: Updates were rejected because 'origin/topic' has diverged
  hint: from your current branch, which was rebased cleanly on 'upstream/main'.
  hint: Use 'git push --force-with-lease origin topic' to replace it.

Signed-off-by: Harald Nordgren <haraldnordgren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-10-06 12:10:20 -07:00
..
add.c Merge branch 'gr/add-e-use-apply-api' 2026-09-07 09:32:06 -07:00
am.c hook: mark non-parallelizable hooks 2026-04-10 07:58:53 -07:00
annotate.c
…
apply.c
…
archive.c connect: use "service" enum for "name" argument 2026-05-19 15:05:46 +09:00
backfill.c path-walk: add pl_sparse_trees to control tree pruning 2026-05-24 18:41:06 +09:00
bisect.c Merge branch 'js/coverity-unchecked-returns-fix' 2026-08-24 13:17:50 -07:00
blame.c Merge branch 'bc/parse-options-exit-0-on-help' 2026-07-19 10:42:16 -07:00
branch.c Merge branch 'hn/branch-delete-merged' 2026-08-20 07:30:51 -07:00
bugreport.c
…
bundle.c bundle: generate packfiles via the object database 2026-08-21 09:01:55 -07:00
cat-file.c Merge branch 'ps/cat-file-remote-object-info-type' 2026-08-23 18:01:42 -07:00
check-attr.c environment: stop using `the_repository` in `is_bare_repository()` 2026-06-11 05:05:54 -07:00
check-ignore.c
…
check-mailmap.c mailmap: stop using the_repository 2026-02-20 08:13:58 -08:00
check-ref-format.c refs: remove remaining uses of `the_repository` 2026-07-16 07:40:22 -07:00
checkout--worker.c
…
checkout-index.c setup: stop using `the_repository` in `prefix_path()` 2026-05-19 19:36:24 +09:00
checkout.c Merge branch 'ps/odb-stop-registering-in-memory-sources' 2026-09-15 11:07:36 -07:00
clean.c Merge branch 'jk/color-variable-fixes' 2025-09-29 11:40:35 -07:00
clone.c Merge branch 'af/clone-revision-v0-segfault-fix' 2026-08-03 09:31:29 -07:00
column.c
…
commit-graph.c commit-graph: add new config for changed-paths & recommend it in scalar 2025-10-22 10:40:11 -07:00
commit-tree.c commit: rename `free_commit_list()` to conform to coding guidelines 2026-01-15 05:32:31 -08:00
commit.c Revert "Merge branch 'en/no-amend-during-conflicts'" 2026-09-23 11:18:51 -07:00
config.c Merge branch 'js/coverity-unchecked-returns-fix' 2026-08-24 13:17:50 -07:00
count-objects.c packfile: introduce macro to iterate through packs 2025-10-16 14:42:39 -07:00
credential-cache--daemon.c
…
credential-cache.c
…
credential-store.c builtin/credential-store: move is_rfc3986_unreserved to url.[ch] 2026-01-12 11:56:56 -08:00
credential.c
…
describe.c Merge branch 'kk/prio-queue-get-put-fusion' 2026-07-13 08:27:27 -07:00
diagnose.c
…
diff-files.c
…
diff-index.c setup: stop using `the_repository` in `setup_work_tree()` 2026-05-19 19:36:24 +09:00
diff-pairs.c
…
diff-tree.c Merge branch 'ps/commit-list-functions-renamed' 2026-02-13 13:39:25 -08:00
diff.c diff: handle NULL return from repo_get_commit_tree() 2026-07-10 08:13:54 -07:00
difftool.c Merge branch 'rs/tempfile-wo-the-repository' 2026-07-30 10:32:02 -07:00
fast-export.c Merge branch 'ps/refspec-wo-the-repository' 2026-07-27 09:09:00 -07:00
fast-import.c Merge branch 'js/pack-objects-delta-size-t' 2026-08-24 13:17:51 -07:00
fetch-pack.c repository: move fetch_if_missing into struct repository 2026-08-15 08:37:54 -07:00
fetch.c submodule-config: remove uses of `the_repository` 2026-09-11 08:46:10 -07:00
fmt-merge-msg.c builtin/fmt-merge-msg: stop depending on 'the_repository' 2025-08-11 09:19:40 -07:00
for-each-ref.c Merge branch 'ms/refs-list' 2025-08-22 13:13:20 -07:00
for-each-repo.c for-each-repo: simplify passing of parameters 2026-03-03 10:20:00 -08:00
fsck.c Merge branch 'ps/odb-pluggable-fsck' 2026-09-15 11:07:37 -07:00
fsmonitor--daemon.c fsmonitor: plug token-data leak on early daemon-startup failures 2026-07-05 09:12:10 -07:00
gc.c builtin/maintenance: improve heuristic for "rerere gc" 2026-09-04 07:27:14 -07:00
get-tar-commit-id.c
…
grep.c builtin/grep: stop registering submodule ODB as source 2026-09-11 08:46:10 -07:00
hash-object.c setup: stop using `the_repository` in `setup_git_directory()` 2026-05-19 19:36:25 +09:00
help.c setup: stop using `the_repository` in `setup_git_directory_gently()` 2026-05-19 19:36:24 +09:00
history.c Merge branch 'ks/history-commit-leakfix' 2026-09-16 09:04:56 -07:00
hook.c hook: allow hook.jobs=-1 to use all available CPU cores 2026-04-10 07:58:55 -07:00
index-pack.c Merge branch 'ty/repository-fetch-if-missing' 2026-09-02 09:21:59 -07:00
init-db.c setup: pass worktree to `init_db()` 2026-07-07 10:49:41 -07:00
interpret-trailers.c Merge branch 'kh/doc-interpret-trailers-1' 2026-03-27 11:00:02 -07:00
last-modified.c last-modified: handle repo_parse_commit() failures 2026-08-12 09:05:50 -07:00
log.c Merge branch 'jk/format-patch-leakfix' 2026-07-13 08:27:27 -07:00
ls-files.c Merge branch 'js/objects-larger-than-4gb-on-windows-more' 2026-06-21 16:41:38 -07:00
ls-remote.c ref-filter: propagate peeled object ID 2025-11-04 07:32:25 -08:00
ls-tree.c odb: use size_t for object_info.sizep and the size APIs 2026-06-15 07:45:41 -07:00
mailinfo.c
…
mailsplit.c mailsplit: move NULL check before first use of file handle 2026-07-10 08:13:54 -07:00
merge-base.c commit-reach: early exit paint_down_to_common for single merge-base 2026-05-12 09:33:43 +09:00
merge-file.c setup: stop using `the_repository` in `setup_git_directory()` 2026-05-19 19:36:25 +09:00
merge-index.c
…
merge-ours.c merge-ours: integrate with sparse-index 2026-02-06 11:45:33 -08:00
merge-recursive.c builtin: also setup gently for --help-all 2025-08-08 11:13:12 -07:00
merge-tree.c odb: use size_t for object_info.sizep and the size APIs 2026-06-15 07:45:41 -07:00
merge.c Merge branch 'tc/merge-default-to-upstream-leakfix' 2026-08-07 14:48:01 -07:00
mktag.c odb: use size_t for object_info.sizep and the size APIs 2026-06-15 07:45:41 -07:00
mktree.c mktree: do not use OBJECT_INFO_QUICK when checking objects 2026-08-30 13:37:42 -07:00
multi-pack-index.c builtin/multi-pack-index: refuse unknown sources with "--object-dir=" 2026-09-11 08:46:10 -07:00
mv.c Merge branch 'lo/mv-missing-dest-dir-check' 2026-08-11 10:07:00 -07:00
name-rev.c Merge branch 'kh/name-rev-custom-format' 2026-05-19 09:57:44 +09:00
notes.c worktree: pass repository to public functions 2026-07-16 07:40:22 -07:00
pack-objects.c Merge branch 'en/midx-missing-pack-fallback' 2026-09-10 05:36:17 -07:00
pack-redundant.c pack-redundant: fix memory leak when open_pack_index() fails 2026-02-21 21:26:53 -08:00
pack-refs.c builtin/pack-refs: factor out core logic into a shared library 2025-09-19 10:02:55 -07:00
patch-id.c hash: use git_hash_init() consistently 2026-07-07 21:56:00 -07:00
prune-packed.c
…
prune.c repository: move fetch_if_missing into struct repository 2026-08-15 08:37:54 -07:00
pull.c refspec: let callers pass in hash algorithm when parsing items 2026-07-16 13:58:25 -07:00
push.c push: suggest a force push after a clean rebase 2026-10-06 12:10:20 -07:00
range-diff.c Merge branch 'kh/format-patch-range-diff-notes' 2025-10-14 12:56:09 -07:00
read-tree.c setup: stop using `the_repository` in `setup_work_tree()` 2026-05-19 19:36:24 +09:00
rebase.c reset: introduce ability to skip updating HEAD 2026-07-03 10:32:33 -07:00
receive-pack.c odb/transaction: add transaction interface to write packfiles 2026-08-20 20:28:02 -07:00
reflog.c worktree: pass repository to public functions 2026-07-16 07:40:22 -07:00
refs.c worktree: pass repository to public functions 2026-07-16 07:40:22 -07:00
remote-ext.c
…
remote-fd.c
…
remote.c odb: rename `odb_has_object()` flags 2026-03-31 20:43:14 -07:00
repack.c builtin/repack: add guards for --drop-filtered 2026-08-13 13:34:50 -07:00
replace.c hex: add and use strbuf_add_oid_hex() 2026-05-14 15:59:25 +09:00
replay.c replay: offer an option to linearize the commit topology 2026-08-31 10:29:06 -07:00
repo.c setup: move prefix into repository 2026-07-07 10:49:40 -07:00
rerere.c
…
reset.c environment: stop using `the_repository` in `is_bare_repository()` 2026-06-11 05:05:54 -07:00
rev-list.c Merge branch 'sa/rev-list-missing-only' 2026-09-14 14:02:53 -07:00
rev-parse.c setup: move prefix into repository 2026-07-07 10:49:40 -07:00
revert.c Merge branch 'pw/3.0-commentchar-auto-deprecation' 2025-09-18 10:07:00 -07:00
rm.c setup: stop using `the_repository` in `setup_work_tree()` 2026-05-19 19:36:24 +09:00
send-pack.c refspec: stop depending on `the_repository` 2026-07-16 13:58:25 -07:00
shortlog.c parse-options: exit 0 on -h 2026-07-07 17:48:57 -07:00
show-branch.c prio-queue: fold lazy_queue into prio_queue for automatic get+put fusion 2026-06-09 11:11:46 -07:00
show-index.c show-index: use gettext wrapping in user facing error messages 2026-01-30 08:58:12 -08:00
show-ref.c odb: rename `odb_has_object()` flags 2026-03-31 20:43:14 -07:00
sparse-checkout.c use repo_hold_lock_file_for_update{,_mode,_timeout}() with custom repos 2026-07-14 12:54:25 -07:00
stash.c Merge branch 'hn/checkout-m-autostash-refine' 2026-09-14 14:02:53 -07:00
stripspace.c setup: stop using `the_repository` in `setup_git_directory_gently()` 2026-05-19 19:36:24 +09:00
submodule--helper.c Merge branch 'ps/odb-stop-registering-in-memory-sources' 2026-09-15 11:07:36 -07:00
symbolic-ref.c
…
tag.c odb: use size_t for object_info.sizep and the size APIs 2026-06-15 07:45:41 -07:00
unpack-file.c odb: use size_t for object_info.sizep and the size APIs 2026-06-15 07:45:41 -07:00
unpack-objects.c Merge branch 'jt/receive-pack-pluggable-writes' 2026-08-31 08:25:00 -07:00
update-index.c odb/transaction: add transaction finalize interface 2026-08-20 20:28:01 -07:00
update-ref.c update-ref: handle rejections while adding updates 2026-05-05 16:34:08 +09:00
update-server-info.c
…
upload-archive.c setup: stop using `the_repository` in `enter_repo()` 2026-05-19 19:36:24 +09:00
upload-pack.c setup: stop using `the_repository` in `enter_repo()` 2026-05-19 19:36:24 +09:00
url-parse.c builtin: create url-parse command 2026-05-06 09:48:28 +09:00
var.c Merge branch 'jc/string-list-split' 2025-08-21 13:46:59 -07:00
verify-commit.c
…
verify-pack.c
…
verify-tag.c tag: support arbitrary repositories in gpg_verify_tag() 2025-12-29 22:02:53 +09:00
worktree.c Merge branch 'rs/worktree-add-basename-fixes' 2026-09-10 05:36:16 -07:00
write-tree.c
…