2013-06-17 5 views
9

Diciamo che sono in un ramo fuori dal master, chiamato "my_new_stuff". Ho la sensazione che possa aver nascosto qualcosa lì dentro. Sono preoccupato che se faccio git stash pop e io non abbia immagazzinato qualcosa che sta andando a spingere un carico di merda indesiderata nella mia cartella di lavoro.Git stash: come vedere se ci sono cambiamenti nascosti in un ramo

Posso vedere se ci sono modifiche nascoste senza eliminarle?

grazie, max

+1

C'è un sottocomando 'git stash show' che sembra essere utile qui. – gcbenison

+0

@gcbenison - l'ho provato nel mio ramo e mostra tre file. Poi sono passato al master e ci ho provato e mostra gli stessi tre file. Come posso vedere in quale ramo sono nascosti? Le barre sono collegate a un ramo specifico? –

+0

Gli stash non sono collegati a nessun ramo. –

risposta

22

i negozi Stash istantanee nello stesso modo che impegna farlo. È possibile visualizzare il contenuto della scorta con

git stash list 

È possibile fare riferimento quelle istantanee con la notazione [email protected]{N} o utilizzare gli hash indicati. Puoi usare uno qualsiasi dei comandi di Git che funzionano su commit su stash. Per esempio

git diff master [email protected]{0} 

vi mostrerà ciò che il più recente scorta sarebbe aggiungere/rimuovere al ramo master se è stato applicato lì.

+0

Perfetto, grazie! Avrei dovuto indovinare questa sintassi :) –

3

Non proprio una risposta in quanto tale, ma una piccola sceneggiatura che ho fatto usando la risposta di Peter Lundgren, sopra, che trovo molto utile: quando cambio rami, mi dice se ho nascosto le modifiche.

in .git/hooks/post-checkout 

#!/bin/sh 
branch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p') 
stashes=`git stash list | grep "WIP on $branch"` 
if [ "$stashes" ] 
then 
    echo "You have the following stashes for this branch:" 
    echo $stashes 
fi