diff --git a/bin/git-checkout-fuzzy-2 b/bin/git-checkout-fuzzy-2 new file mode 100755 index 0000000..feb7eee --- /dev/null +++ b/bin/git-checkout-fuzzy-2 @@ -0,0 +1,18 @@ +#!/bin/sh + +gcb() { + result=$(git branch -a --color=always | grep -v '/HEAD\s' | sort | + fzf --height 50% --border --ansi --tac --preview-window right:70% \ + --preview 'git log --oneline --graph --date=short --pretty="format:%C(auto)%cd %h%d %s" $(sed s/^..// <<< {} | cut -d" " -f1) | head -'$LINES | + sed 's/^..//' | cut -d' ' -f1) + + if [[ $result != "" ]]; then + if [[ $result == remotes/* ]]; then + git checkout --track $(echo $result | sed 's#remotes/##') + else + git checkout "$result" + fi + fi +} + +gcb