Lately whenever I have to rebase I get a weird error about how I have a dirty tree and need to commit files.
error: Your local changes to the following files would be overwritten by merge:
Please, commit your changes or stash them before you can merge.
Failed to merge in the changes.
Well this is a dirty lie, and the problem appears to be related to hardlinking changing the ctime of the source file and confusing git into thinking that the files need to be re-checked-out. Bottom line, the fix is here: