mirror of https://github.com/kianby/dotfiles
add fstash
parent
2cd446af10
commit
62752d385a
@ -0,0 +1,28 @@
|
|||||||
|
# fstash - easier way to deal with stashes
|
||||||
|
# type fstash to get a list of your stashes
|
||||||
|
# enter shows you the contents of the stash
|
||||||
|
# ctrl-d shows a diff of the stash against your current HEAD
|
||||||
|
# ctrl-b checks the stash out as a branch, for easier merging
|
||||||
|
fstash() {
|
||||||
|
local out q k sha
|
||||||
|
while out=$(
|
||||||
|
git stash list --pretty="%C(yellow)%h %>(14)%Cgreen%cr %C(blue)%gs" |
|
||||||
|
fzf --ansi --no-sort --query="$q" --print-query \
|
||||||
|
--expect=ctrl-d,ctrl-b);
|
||||||
|
do
|
||||||
|
mapfile -t out <<< "$out"
|
||||||
|
q="${out[0]}"
|
||||||
|
k="${out[1]}"
|
||||||
|
sha="${out[-1]}"
|
||||||
|
sha="${sha%% *}"
|
||||||
|
[[ -z "$sha" ]] && continue
|
||||||
|
if [[ "$k" == 'ctrl-d' ]]; then
|
||||||
|
git diff $sha
|
||||||
|
elif [[ "$k" == 'ctrl-b' ]]; then
|
||||||
|
git stash branch "stash-$sha" $sha
|
||||||
|
break;
|
||||||
|
else
|
||||||
|
git stash show -p $sha
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
Loading…
Reference in New Issue