I was trying to write a pre-commit hook for testing using stash to keep irrelevant changes, but pop couldn't apply changes automatically when the same file with different changes was in index and working directory at the same time. Reproduction: mkdir git-stash-test && cd git-stash-test git init echo foo > foo.txt git add . && git commit -m 'init' echo foo2 > foo.txt git add foo.txt echo foo3 > foo.txt git status # (*) git stash push --keep-index git status # do testing git stash pop Expected result: same state as before push (*); actual result: Auto-merging foo.txt CONFLICT (content): Merge conflict in foo.txt The stash entry is kept in case you need it again. --index option doesn't help when used with pop. My assumption is that pop should be the reverse of push when nothing has changed in between, but I don't know if this is a bug or unexpected behaviour. (git version 2.26.2)