This question already has answers here: Is it possible to preview stash contents in git? (17 answers) Closed 2 years ago.
I see here you can apply/unapply a stash and even create a new branch off of a stash. Is it possible to simply see what is inside the stash without actually applying it?
stash
an application, he's referring to the act of applying the stash. Unclear terminology aside, the question is the same.
git stash show -p stash@{1} >~/.diff && vim ~/.diff
(doesn't have to be vim
. any text editor as long as your text editor has syntax highlighting support for diff
output).
git stash show -p stash@{1} | view -
view
is aliased to vi
and man view
displays the man page for vim
. (i'll have to change my .bashrc
to use your new trick (it's better than my old way IMO).)
From man git-stash
(which can also be obtained via git help stash
):
The modifications stashed away by this command can be listed with git stash list, inspected with git stash show, and ...
show [<stash>]
Show the changes recorded in the stash as a diff between the stashed
state and its original parent. When no <stash> is given, shows the
latest one. By default, the command shows the diffstat, but it will
accept any format known to git diff (e.g., git stash show -p stash@{1}
to view the second most recent stash in patch form).
Note: the -p
option generates a patch, as per git-diff
documentation.
List the stashes:
git stash list
Show the files in the most recent stash:
git stash show
Show the changes of the most recent stash:
git stash show -p
Show the changes of the named stash:
git stash show -p stash@{1}
Success story sharing
git stash list | awk -F: ‘{ print “\n\n\n\n”; print $0; print “\n\n”; system(“git –no-pager stash show -p ” $1); }’ | less
It helped me a lot in the past (cleaning stashes stack).git stash list | awk -F: '{ print "\n\n\n\n"; print $0; print "\n\n"; system("git stash show -p " $1); }'
Press [Q] to exit each stash.git stash show -p stash@{1}
lists all the files in a stash. Is it possible to view jus one specific file from the stash?git stash show -p stash@{0} --name-only
shows just the names of the files (not the contents) in your first stash.git diff stash@{0}^! -- file.txt
will do it. See here for more details.