summaryrefslogtreecommitdiff
path: root/gitweb
diff options
context:
space:
mode:
authorHarald Nordgren <haraldnordgren@gmail.com>2026-08-05 14:24:35 +0000
committerJunio C Hamano <gitster@pobox.com>2026-08-05 10:08:28 -0700
commit15bcdf43bbe2206998f7c044bd44479d47749809 (patch)
tree0fba2f6bdff89511ac2a39f5065307f356c780e8 /gitweb
parent5e528a36d243f6152dbc5e04ab2314b32f30efcb (diff)
branch: add --delete-merged <pattern>
git branch (--delete-merged <pattern>)... [<branch-pattern>...] deletes local branches matching the optional branch patterns when their configured upstream matches one of the --delete-merged arguments and their tip is reachable from that upstream. The work has already landed on the upstream they track, so the local copy is no longer needed. Each <pattern> may name a ref, a remote, or a shell glob. The option can be repeated to widen the upstream match. Keeping the candidate patterns as positional arguments lets users bound the set of local branches that may be deleted independently of the upstream selection. A branch is not deleted when: * it is checked out in any worktree * its configured upstream ref no longer exists, since a missing upstream is not by itself a sign of integration * pushing it to the remote configured by branch.<name>.remote would update its upstream, as determined by that remote's configured push and fetch refspecs. For example, a local "main" that tracks "origin/main" is kept even when remote.pushDefault names a fork. Right after a pull it merely looks fully merged. * it is the local upstream of a branch that is not being deleted, so no branch is deleted out from under stacked work. A branch whose work is not yet merged into its upstream is silently skipped, so one unmerged topic does not abort the whole sweep. Collect protected local upstreams without changing the candidate set during ref iteration, then remove them after iteration. This makes the result independent of ref iteration order. If a protected branch's own upstream is deleted by the same sweep, clear its upstream configuration. Signed-off-by: Harald Nordgren <haraldnordgren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'gitweb')
0 files changed, 0 insertions, 0 deletions