diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index b86953de..c1e1cc94 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -120,7 +120,7 @@ alias gRb='git-hub' # Stash (s) alias gs='git stash' alias gsa='git stash apply' -alias gsc='git stash clear' +alias gsc='git-stash-clear-interactive' alias gsx='git stash drop' alias gsl='git stash list' alias gsL='git stash show --patch --stat' diff --git a/modules/git/functions/git-stash-clear-interactive b/modules/git/functions/git-stash-clear-interactive new file mode 100644 index 00000000..96f67801 --- /dev/null +++ b/modules/git/functions/git-stash-clear-interactive @@ -0,0 +1,18 @@ +# +# Asks for confirmation before clearing the Git stash. +# +# Authors: +# Sorin Ionescu +# + +local stashed + +if [[ -f "$(git-dir)/refs/stash" ]]; then + stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')" + if (( $stashed > 0 )); then + if read -q "?Clear $stashed stashed state(s) [Y/n]? "; then + git stash clear + fi + fi +fi +