`git --diff` can not be used to determine dirty status because it ignores staged and untracked files