Как вы можете узнать, не нужен ли вам git stash? - PullRequest
9 голосов
/ 01 ноября 2011

Можно ли определить, был ли тайник уже применен и, следовательно, больше не требуется, без выполнения операции git stash apply?Предположим, что я использую только одну ветвь.

Этого можно избежать, используя pop вместо apply при применении тайника, и, следовательно, избавляйся от тайника каждый раз, когда он применяется.Тем не менее, я иногда использую git stash, чтобы сохранить снимок выполняемой работы, а не просто использовать его для переключения с одной задачи на другую.Использование поп-музыки несколько победило бы.

Ответы [ 2 ]

10 голосов
/ 01 ноября 2011

Просто сделайте diff и вы увидите.

git diff HEAD stash @ {0}

4 голосов
/ 23 ноября 2011

Вы можете использовать следующий скрипт оболочки, чтобы получить git 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

Это даст вам список вроде:

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

И если вам это нравится, вы можете добавить его как псевдоним git:

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

(протестировано с bash и zsh )

...