If a user commits local changes, and tries to push the changes to a repository that has new changes, the push will fail saying that there are unpulled changes.
But if you try to pull the changes, it will fail because there are uncommited (to the repository) changes in my local repository.
What is the point of letting users commit changes if they will not be able to push them if he doesn't pull first?