How can you tell if a git stash is no longer required?

后端 未结 3 1405
故里飘歌
故里飘歌 2021-02-20 10:55

Is it possible to tell whether a stash has already been applied, and therefore is no longer required, without doing git stash apply? Assume that I\'m only using one

3条回答
  •  -上瘾入骨i
    2021-02-20 11:31

    You can use the following shell script to get git stash list prefixed with checkmarks if they have already been applied or there is no need to apply them as there is no difference.

    git stash list | while read line; do \
      ref=${line%%:*}; \
      prefix=$(test $(git diff $ref | wc -l) = "0" && echo "✔  " || echo "   "); \
      echo "$prefix$line"; \
    done
    

    This will give you a list like:

    ✔  stash@{0}: WIP on develop: 77a1a66 send 'social.share' message via 'view-req-relay'...
       stash@{1}: WIP on bigcouch: 4bfa3af added couchdb filters...
    

    And if you like it you can add it as a git alias like that:

    git config --global --add alias.stash-list '!git stash list | while read line; do   ref=${line%%:*};   prefix=$(test $(git diff $ref | wc -l) = "0" && echo "✔  " || echo "   ");   echo "$prefix$line"; done'
    git stash-list
    

    (tested with bash and zsh)

提交回复
热议问题