Re: git stash and manually edited chunks
From: Matthieu Moy <hidden>
Date: 2016-06-15 22:49:58
Gavin Guo [off-list ref] writes:
quoted
Let's say the state of your working tree here is A (and last commit is HEAD).quoted
* git add -p my_file * I edit a chunk *manually* (using e)Here, the index contains a state which is neither in the working tree nor in the last commit. Let's call this state B.quoted
* git stash --keep-indexHere, the working tree takes state B.quoted
* git stash popHere, you're trying to apply the stash, which is somehow a diff between HEAD and A, on your tree which is in state B. Hence the conflicts.I am confusing about the description here. Git stash --keep-index exist after editing the hunk, so why stash will save the difference between HEAD and A, I think it should be the state which is modified by git add -p(using e), and as a result of no conflict.
It's actually both. And indeed, "diff" is slightly oversimplified : stash saves the state of HEAD and of the index, as two commits. Try running "gitk --all" after stash to see what's going on. -- Matthieu Moy http://www-verimag.imag.fr/~moy/