force checkouts

to avoid conflicts when 'git reset --hard' fails to erase files which
have been erased by a commit.
preserve branch when modifying tip, closes #1
avoid losing unsaved changes when moving