When checking out an existing branch, if there are uncommitted changes, then git will not complete the checkout. However, the pull handler will still proceed with refreshing Iris based on the git diff, which is now inaccurate (because it can potentially try to load classes that don't exist in the checkout)
The change needs to take place somewhere within RunGitCommandWithInput() before SyncIrisWithRepoThroughDiff() is called. I think I have a solution, but I need to run a few more tests first.