1 changed files with 71 additions and 0 deletions
@ -0,0 +1,71 @@
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash |
||||
|
||||
## |
||||
## |
||||
## git-recent (c) https://github.com/paulirish/git-recent |
||||
## |
||||
## MIT License |
||||
## |
||||
## Copyright (c) 2017 Paul Irish |
||||
## |
||||
## list all local branches, sorted by last commit, formatted reall purdy |
||||
## |
||||
|
||||
# Windows needs more basic format (#8, git-for-windows/git#865) |
||||
case $(uname -s) in |
||||
CYGWIN*|MINGW*|MSYS*) |
||||
branch='%(refname:short)' |
||||
spacer=' ' |
||||
;; |
||||
*) |
||||
branch='%(color:yellow)%(refname:short)%(color:reset)' |
||||
spacer='%(color:black) %(color:reset)' |
||||
;; |
||||
esac |
||||
|
||||
COUNT=0 |
||||
while getopts "n:" opt; do |
||||
case ${opt} in |
||||
n ) |
||||
if ! [[ $OPTARG =~ ^[0-9]{1,}$ ]]; then |
||||
echo "-n should be an integer." |
||||
exit 1 |
||||
fi |
||||
COUNT=${OPTARG} |
||||
shift |
||||
;; |
||||
esac |
||||
done |
||||
shift $((OPTIND-1)) |
||||
|
||||
format="\ |
||||
%(HEAD) \ |
||||
$branch|\ |
||||
%(color:bold red)%(objectname:short)%(color:reset) \ |
||||
%(color:bold green)(%(committerdate:relative))%(color:reset) \ |
||||
%(color:bold blue)%(authorname)%(color:reset) \ |
||||
%(color:yellow)%(upstream:track)%(color:reset) |
||||
$spacer|\ |
||||
%(contents:subject) |
||||
$spacer|" |
||||
|
||||
lessopts="--tabs=4 --quit-if-one-screen --RAW-CONTROL-CHARS --no-init" |
||||
|
||||
git for-each-ref \ |
||||
--color=always \ |
||||
--count=$COUNT \ |
||||
--sort=-committerdate \ |
||||
"refs/heads/" \ |
||||
--format="$format" \ |
||||
| column -ts '|' \ |
||||
| less "$lessopts" |
||||
|
||||
# The above command: |
||||
# for all known branches, |
||||
# (force coloring on this, especially since it's being piped) |
||||
# optionally, specify the number of branches you want to display |
||||
# sort descending by last commit |
||||
# show local branches (change to "" to include both local + remote branches) |
||||
# apply the formatting template above |
||||
# break into columns |
||||
# use the pager only if there's not enough space |
Loading…
Reference in new issue