devshell: stash only unstaged changes in pre-commit hook
This commit is contained in:
parent
ea69c1d12c
commit
a479b8e544
|
@ -8,8 +8,18 @@ else
|
|||
fi
|
||||
|
||||
# Stash only unstaged changes, keeping staged changes
|
||||
# We have to stash two times, because:
|
||||
# --keep-index also stashes the staged changes.
|
||||
# The staged changes end up in both the stage AND the stash.
|
||||
# https://overflow.hostux.net/questions/7650797/how-to-stash-only-unstaged-changes-in-git#60875082
|
||||
old_stash=$(git rev-parse --quiet --verify refs/stash)
|
||||
git stash push --quiet --keep-index -m 'Unstaged changes before pre-commit hook'
|
||||
git stash push --quiet --staged --message "Staged changes before pre-commit hook"
|
||||
git stash push --quiet --message "Unstaged changes before pre-commit hook"
|
||||
if git stash show "stash@{1}" 2>/dev/null; then
|
||||
git stash pop --quiet --index "stash@{1}"
|
||||
else
|
||||
git stash pop --quiet --index "stash@{0}"
|
||||
fi
|
||||
new_stash=$(git rev-parse --quiet --verify refs/stash)
|
||||
|
||||
diff="git diff-index --name-only --cached $against --diff-filter d"
|
||||
|
|
Loading…
Reference in a new issue