Sharing

git push [remote]
Update the remote repository named remote with commits across all branches that are common between your local repository and remote. If remote is not specified, but a remote named "origin" is defined, then remote defaults to "origin". Local branches that were never pushed to the server in the first place are not shared.
git push remote branch
Update the remote repository named remote (e.g. "origin") with commits made to branch since the last push. This is always required for new local branches (including "master" in a new repository). After the first explicit push, "git push" by itself is sufficient.
git pull remote
Update the current branch with changes from the remote named remote (defaults to "origin" if not given). Note that for this to work, ".git/config" must define merge configuration variables for the current branch, e.g.:
    [branch "master"]
        remote = origin
        merge = refs/heads/master
git pull remote remote-branch
Update the current branch with changes from the remote branch remote-branch on the remote named remote (defaults to "origin" if not given). This explicit form of "git pull" is required if ".git/config" does not have a merge specification defined for the current branch.