When pushing you will get a reject error if your commits are not a fast-forward on the remote repo (e.g. someone else has pushed changes to the remote repo). The easiest way to correct this is to do a git pull which will fetch the changes, and perform an automatic merge.
If you are using multiple branches Git, by default, tries to push all of them -- not just the current branch you are on. This can lead to some confusing messages that will show multiple success or rejected lines. This questionThis question has some configuration you can add to change this behavior.