¿Por qué git pull no fusionará / no podrá fusionar los cambios locales?

Intentando entender el comportamiento del git.

Cuando ejecuto git pull recibo una advertencia

 error: Your local changes to the following files would be overwritten by merge: foo/bar Please, commit your changes or stash them before you can merge. Aborting 

Pero si git stash save , git stash pull , y luego git stash pop , los cambios se aplican sin ningún problema.

 Auto-merging foo/bar ... 

¿Por qué no puedo / no puedo hacer lo mismo?

No hay garantía, en el caso general, de que la fusión se pueda realizar automáticamente. Puede dejar conflictos que necesitan resolución manual. En este caso, sería bastante frustrante para el usuario si olvidara los cambios locales en los que estaba trabajando y simplemente quisiera "deshacer" la fusión para volver a donde estaba. Si comprometes o escondes primero, tienes la capacidad de abortar / deshacer la fusión, porque si has cometido entonces todavía tendrás la confirmación y si el alijo no se fusionó automáticamente sin conflictos, entonces el alijo no será remoto.