2011-11-01 13 views
8

Czy można stwierdzić, czy skrytka została już zastosowana, a zatem nie jest już wymagana, bez wykonywania git stash apply? Załóżmy, że używam tylko jednego oddziału.Skąd wiadomo, czy ukryty zapas git nie jest już potrzebny?

Można temu zapobiec, używając pop zamiast apply podczas stosowania skrytki, a zatem pozbyć się skrytki za każdym razem, gdy zostanie zastosowany. Czasami jednak korzystam z magazynu git, aby zachować migawkę w toku, zamiast używać jej tylko do przełączania się z jednego zadania do drugiego. Używanie popa nieco to pokona.

Odpowiedz

9

Po prostu wykonaj różnicę, a zobaczysz.

git diff HEAD zapas @ {0}

+2

W rzeczywistości, ponieważ domyślnie używa 'stash @ {0}', wystarczy 'git diff HEAD stash'. –

4

Można użyć poniższy skrypt dostać git stash list przedrostkiem z ptaszkami, jeżeli zostały już zastosowane lub nie ma potrzeby, aby stosować je jako tam jest bez różnicy.

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

To daje listę:

[email protected]{0}: WIP on develop: 77a1a66 send 'social.share' message via 'view-req-relay'... 
    [email protected]{1}: WIP on bigcouch: 4bfa3af added couchdb filters... 

A jeśli Ci się spodoba można go dodać jako aliasu git tak:

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 

(testowane z bash i zsh)

Powiązane problemy