If you have pushed to gerrit from your master (that is correct, but not the best option), you didn't do anything wrong. Gerrit uses a cherry-pick strategy when we promote a commit, that means that developer's commit histories don't play any role.
What git is telling you is that you and master have diverged, and you have to update.
Running git push --rebase does
1) fetch data from remote
2) stash your local commits
3) apply new commits from remote to your local copy
4) replay your stashed history: if a commit you have has already been merged, it won't be done again
Then, I suppose you will be perfectly fine after it. If, after pull, git doesn't say you're up-to-date, it means that not merged commits still live in your master.
As others have suggested: use branches in the future. It works better with gerrit's cherry-pick model. If your master reflects origin/master you more easily track the actual master repo.
Hope it helps.
Dario.