When switching to an other branch, there can be conflicts when I have uncommitted changes. I would like to switch branches, but keep the modified files as they are, instead of committing the changes or using git stash (which might lead to conflicts).
This way is more intuitive with the workflow I use, as the changed files normally represent the most recent version of the files. Sometimes I switch to another branch to commit a minor change. I do not yet want to commit my changes on the current branch, as they are not complete. A minor change might be a single function that needs to be committed on an other branch with a partial commit, while other changes in the same file should stay as they are. Also, I do not want to use the stash, as applying the stash on the other branch might lead to conflicts. Further, once or twice, I forgot to apply a stashed change, and for fear of loosing data, I often do not drop the stashes. As I use many temporary branches, this leads to a cluttered history with references to branches I have already deleted.
I know that this is technically possible, as I could create temporary copies of all modified files, reset the working copy, switch to an other branch and move the temporary files to the working copy. So I could create a function to do this. But is there an already available or more simple solution?