What are the differences between "git commit" and "git push"?


In a Git tutorial I'm going through, git commit is used to store the changes you've made.

What is git push used for then?


Basically, git commit "records changes to the repository" while git push "updates 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).

When doing a 'git push', what does '--set-upstream' do?

How can I rename a git stash?