"Push" is a Git way of synchronizing repositories - in your case, synchronizing a local repo with one sitting on a remote server.
Repository βupdatesβ occur when you make changes (in fact, technically, when you βaddβ, but deeper than necessary). When you commit, Git simply stores information about delta changes that you have made since the last commit (these are not βduplicateβ files). But this fixation is only on your local machine until you click. When you click, Git simply synchronizes the updates you made in the local repo with the repo on the remote server.
Pro Git is a simple and wonderful read, and it will explain such things well: http://progit.org/book/
source share