You are completely ignoring my objection that I don't want to "commit" a tree that is totally broken. What should my commit message be?
"Tree is totally broken and doesn't compile, but Git made me do this to pull upstream changes."
There is nothing logical/reasonable for me to write in that commit message. I definitely don't want that commit to make it upstream. Sure, I could squash later, but why is Git forcing me to do something that doesn't have any value (write a "commit" message for a tree that is totally broken)?