.TH GIT-TRIM 1
.SH NAME
git\-trim \- Automatically trims your tracking branches whose upstream branches are merged or stray.
.SH SYNOPSIS
\fBgit\-trim\fR [FLAGS] [OPTIONS]
.SH FLAGS
.TP
\fB\-h\fR, \fB\-\-help\fR
Prints help information
.TP
\fB\-\-no\-update\fR
Do not update remotes [config: trim.update]
.TP
\fB\-\-no\-confirm\fR
Do not ask confirm [config: trim.confirm]
.TP
\fB\-\-no\-detach\fR
Do not detach when HEAD is about to be deleted [config: trim.detach]
.TP
\fB\-\-dry\-run\fR
Do not delete branches, show what branches will be deleted
.SH OPTIONS
.TP
\fB\-b\fR, \fB\-\-bases\fR=\fIbases\fR
Comma separated multiple names of branches. All the other branches are compared with the upstream branches of those branches. [default: branches that tracks `git symbolic\-ref refs/remotes/*/HEAD`] [config: trim.bases]
The default value is a branch that tracks `git symbolic\-ref refs/remotes/*/HEAD`. They might not be reflected correctly when the HEAD branch of your remote repository is changed. You can see the changed HEAD branch name with `git remote show <remote>` and apply it to your local repository with `git remote set\-head <remote> \-\-auto`.
.TP
\fB\-p\fR, \fB\-\-protected\fR=\fIprotected\fR
Comma separated multiple glob patterns (e.g. `release\-*`, `feature/*`) of branches that should never be deleted. [config: trim.protected]
.TP
\fB\-\-update\-interval\fR=\fIupdate\-interval\fR
Prevents too frequent updates. Seconds between updates in seconds. 0 to disable. [default: 5] [config: trim.updateInterval]
.TP
\fB\-d\fR, \fB\-\-delete\fR=\fIdelete\fR
Comma separated values of `<delete range>[:<remote name>]`. Delete range is one of the `merged, merged\-local, merged\-remote, stray, diverged, local, remote`. `:<remote name>` is only necessary to a `<delete range>` when the range is applied to remote branches. You can use `*` as `<remote name>` to delete a range of branches from all remotes. [default : `merged:origin`] [config: trim.delete]
`merged` implies `merged\-local,merged\-remote`.
`merged\-local` will delete merged tracking local branches. `merged\-remote:<remote>` will delete merged upstream branches from `<remote>`. `stray` will delete tracking local branches, which is not merged, but the upstream is gone. `diverged:<remote>` will delete merged tracking local branches, and their upstreams from `<remote>` even if the upstreams are not merged and diverged from local ones. `local` will delete non\-tracking merged local branches. `remote:<remote>` will delete non\-upstream merged remote tracking branches. Use with caution when you are using other than `merged`. It might lose changes, and even nuke repositories.
.SH EXIT STATUS
.TP
\fB0\fR
Successful program execution.
.TP
\fB1\fR
Unsuccessful program execution.
.TP
\fB101\fR
The program panicked.