Basically, git commitrecords changes to the repository” while git pushupdates remote refs along with associated objects“. So the first one is used in connection with your local repository, while the latter one is used to interact with a remote repository.

Here is a nice picture from Oliver Steele, that explains the Git model and the commands:

Git data transport commands

Read more about git push and git pull on Pushing and pulling (the article I referred to first).