The documentation for git checkout [<branch>]
says:
To prepare for working on <branch>, switch to it by updating the index and the files in the working tree, and by pointing HEAD at the branch. Local modifications to the files in the working tree are kept, so that they can be committed to the <branch>.
How can local modifications in the working tree be "kept" if the files in the working tree are also "updated"? It's either one or the other. (They are indeed not "kept", rather git reports an error and the whole procedure is aborted. I just don't understand why the documentation says what it does.)