I encounter this use case many times a day and believe build consistency wouldn't be screwed for it: - There's an existing build based on committed and uncommitted changes - stash push the uncommitted changes - rebase or pull - stash pop the changes and only restore filedates for files without merges; set the current timestamp for all others - build again Sometimes i save and manually restore filedates from headers which are part of a precompiled header to save a quarter of an hour build time if it's not too many files. I woulnd't need this if git rebase would not refuse to rebase when there are unstaged changes like git pull does. Am i doing it wrong and there's an easier way to avoid this problem when using rebase?