Come posso vedere le modifiche che l'un-stashing apporterà all'albero di lavoro corrente? Vorrei sapere quali cambiamenti saranno fatti prima di applicarli!
Vedi la scorta più recente:
git stash show -p
Vedere uno stash arbitrario:
git stash show -p stash@{1}
Dalle pagine del manuale di git stash
:
Per impostazione predefinita, il comando mostra il diffstat, ma accetterà qualsiasi formato noto a git diff (ad esempio, git stash show -p stash@{1} per vedere il secondo stash più recente in forma di patch).
Per vedere la scorta più recente:
git stash show -p
Per vedere una scorta arbitraria:
git stash show -p stash@{1}
Inoltre, uso git diff per confrontare lo stash con qualsiasi ramo.
Si può usare:
git diff stash@{0} master
Per vedere tutti i cambiamenti rispetto al ramo master. {{{10419255}} per vedere tutte le modifiche rispetto al ramo master; Oppure puoi usare
git diff --name-only stash@{0} master
Per trovare facilmente solo i nomi dei file cambiati.
Se il vostro albero di lavoro è sporco, potete confrontarlo con uno stash commettendo prima l'albero di lavoro sporco, e poi confrontandolo con lo stash. In seguito, si può annullare il commit con l'albero di lavoro sporco (dato che si potrebbe non voler avere quel commit sporco nel log di commit).
Si può anche usare il seguente approccio per confrontare due stash l'uno con l'altro (in questo caso si fa solo un pop di uno degli stash all'inizio).
Impegna il tuo albero di lavoro sporco:
git add .
git commit -m "Dirty commit"
Diff lo stash con quel commit:
git diff HEAD stash@{0}
Poi, dopo, si può ripristinare il commit e rimetterlo nella cartella di lavoro:
git reset --soft HEAD~1
git reset .
Ora avete diffuso l'albero di lavoro sporco con il vostro stash, e siete tornati a dove eravate inizialmente.