billauger
bill-augermaintainer
By default, the git-branch-status
command shows the divergence relationship between branches for which the upstream differs from it's local counterpart.
A number of command-line switches exist, selecting various reports that compare any or all local or remote branches.
USAGE: git-branch-status git-branch-status [ base-branch-name compare-branch-name ] git-branch-status [ -a | --all ] git-branch-status [ -b | --branch ] [ filter-branch-name ] git-branch-status [ -d | --dates ] git-branch-status [ -h | --help ] git-branch-status [ -l | --local ] git-branch-status [ -r | --remotes ] git-branch-status [ -v | --verbose ] EXAMPLES: # show only branches for which upstream differs from local $ git-branch-status | collab-branch | (behind 1) | (ahead 2) | origin/collab-branch | | feature-branch | (even) | (ahead 2) | origin/feature-branch | | master | (behind 1) | (even) | origin/master | # compare two arbitrary branches - local or remote $ git-branch-status local-arbitrary-branch fork/arbitrary-branch | local-arbitrary-branch | (even) | (ahead 1) | fork/arbitrary-branch | $ git-branch-status fork/arbitrary-branch local-arbitrary-branch | fork/arbitrary-branch | (behind 1) | (even) | local-arbitrary-branch | # show all branches - local and remote, regardless of state or relationship $ git-branch-status -a $ git-branch-status --all *| master | (even) | (ahead 1) | origin/master | | tracked-branch | (even) | (even) | origin/tracked-branch | | (no local) | n/a | n/a | origin/untracked-branch | | local-branch | n/a | n/a | (no upstream) | | master | (behind 1) | (ahead 1) | a-remote/master | | (no local) | n/a | n/a | a-remote/untracked-branch | # show the current branch $ git-branch-status -b $ git-branch-status --branch *| current-branch | (even) | (ahead 2) | origin/current-branch | # show a specific branch $ git-branch-status specific-branch $ git-branch-status -b specific-branch $ git-branch-status --branch specific-branch | specific-branch | (even) | (ahead 2) | origin/specific-branch | # show the timestamp of each HEAD $ git-branch-status -d $ git-branch-status --dates | 1999-12-31 master | (behind 2) | (even) | 2000-01-01 origin/master | # print this usage message $ git-branch-status -h $ git-branch-status --help "prints this usage message" # show all local branches - including those synchronized or non-tracking $ git-branch-status -l $ git-branch-status --local *| master | (even) | (ahead 1) | origin/master | | tracked-branch | (even) | (even) | origin/tracked-branch | | local-branch | n/a | n/a | (no upstream) | # show all remote branches - including those not checked-out $ git-branch-status -r $ git-branch-status --remotes | master | (behind 1) | (even) | a-remote/master | | (no local) | n/a | n/a | a-remote/untracked-branch | # show all branches with timestamps (like -a -d) $ git-branch-status -v $ git-branch-status --verbose | 1999-12-31 master | (behind 1) | (even) | 2000-01-01 origin/master | | 1999-12-31 tracked | (even) | (even) | 2000-01-01 origin/tracked | *| 1999-12-31 local-wip | n/a | n/a | (no upstream) |
NOTE: please direct bug reports, feature requests, or PRs to one of the upstream repos: https://github.com/bill-auger/git-branch-status/issues/ https://notabug.org/bill-auger/git-branch-status/issues/ * https://pagure.io/git-branch-status/issues/