When I use git checkout -m, it merges local modifications, which makes life easier when a file has changed between two commits but in a completely separate place from where my local modifications are. However, this becomes a messy merge conflict that has to be resolved when there is indeed a conflict, and I can't simply go back to the previous branch. I also don't want to have to use git stash push and git stash pop all the time, as that is cumbersome. Any ideas what to do?