On Thu, Aug 8, 2013 at 3:07 AM, Luke San Antonio
> Hi, my name's Luke!
> Today, I had a problem merging a stash after immediately creating it.
> This is exactly what I did!
> git stash save --keep-index
> git stash pop
> And BAM! Merge conflict! This was especially weird because my file had
> this in it (taken directly from my code!)
I think the issue is that your working directory receives your cached
file when you say 'git stash --keep-index'. When you restore the
stash, your previous working directory now conflicts with your new
working directory, but neither is the same as HEAD.
Here's a test script to demonstrate the issue, I think. Did I get
this right, Luke?
# cd /tmp && rm -rf foo
git init foo && cd foo
echo "foo" > bar && git add bar && git commit -mfoo
echo "bar" > bar && git add bar
echo "baz" > bar
echo "Before stash bar: $(cat bar)"
git stash --keep-index
echo "After stash bar: $(cat bar)"
git stash apply
The output looks like this:
$ git init foo && cd foo
Initialized empty Git repository in /tmp/foo/.git/
$ git commit --allow-empty -mInitialCommit
[master (root-commit) b5ecc7e] InitialCommit
$ echo "Bar" > bar && git add bar && git commit -mBar
[master 16d708b] Bar
1 file changed, 1 insertion(+)
create mode 100644 bar
$ echo "bar" > bar && git add bar
$ echo "baz" > bar
$ echo "Before stash bar: $(cat bar)"
Before stash bar: baz
$ git stash --keep-index
Saved working directory and index state WIP on master: 16d708b Bar
HEAD is now at 16d708b Bar
$ echo "After stash bar: $(cat bar)"
After stash bar: bar
$ git stash apply
CONFLICT (content): Merge conflict in bar
Recorded preimage for 'bar'
$ cat bar
<<<<<<< Updated upstream
>>>>>>> Stashed changes
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html