+
$ git checkout feature ;# you were working in "feature" branch and
+$ work work work ;# got interrupted
+$ git commit -a -m 'snapshot WIP' (1)
+$ git checkout master
+$ fix fix fix
+$ git commit ;# commit with real log
+$ git checkout feature
+$ git reset --soft HEAD^ ;# go back to WIP state (2)
+$ git reset (3)
+
+(1) This commit will get blown away so a throw-away log message is OK.
+(2) This removes the 'WIP' commit from the commit history, and sets
+ your working tree to the state just before you made that snapshot.
+(3) After (2), the index file still has all the WIP changes you
+ committed in (1). This sets it to the last commit you were
+ basing the WIP changes on.
+