Git Diff against a Stash
In Git, you can compare your current working directory or a specific branch against a stash. This can be useful to see what changes were stashed away. Here are the steps to do so:
Method 1: Diff Against the Most Recent Stash
To compare the working directory with the most recent stash entry:
git stash show -p
This will show the differences between the current working directory and the most recent stash entry.
Method 2: Diff Against a Specific Stash
If you have multiple stashes and want to compare against a specific one, you'll need to refer to the stash by its index or name.
List all stashes:
git stash list
This will output something like:
stash@{0}: WIP on branch-name: commit-message stash@{1}: WIP on another-branch: another-commit-message
Show the diff for a specific stash:
git stash show -p stash@{n}
Replace
stash@{n}
with the specific stash you want to compare against. For example, to compare against the second stash:git stash show -p stash@{1}
Method 3: Diff Against a Specific File in a Stash
If you want to compare a specific file against the version in a stash:
git diff stash@{n} -- path/to/file
Replace stash@{n}
with the specific stash reference and path/to/file
with the file path you want to compare.
Method 4: Creating a Branch from a Stash
For a more detailed comparison or to work on the stashed changes, you can create a new branch from the stash:
Create a new branch from the stash:
git stash branch my-stash-branch stash@{n}
This will apply the stash to a new branch called
my-stash-branch
. Replacestash@{n}
with the specific stash reference.Diff between the branches:
git diff my-stash-branch..main
Replace
main
with the branch you want to compare against.
Summary
- Diff against the most recent stash:
git stash show -p
- Diff against a specific stash:
git stash show -p stash@{n}
- Diff a specific file against a stash:
git diff stash@{n} -- path/to/file
- Create a branch from a stash and diff:
git stash branch my-stash-branch stash@{n}
followed bygit diff my-stash-branch..main
These methods should help you efficiently compare your working directory or specific files against stashed changes.