No, your git repository is not a backup. It's a record of the history of your project, but it's not sufficient as a backup.
You could see pushing as making a backup, but even that wouldn't backup the exact state of your repository (private branches, configuration, reflog, rerere, etc..).
If an object gets corrupt, it's almost impossible to fix it, unless you have a copy of that object somewhere.
That's why it's still important to make backups of your repository.