Fully fork a git repo?
===

I've not quite managed to piece together what I want to know from the multitude of answers on here and blog posts, so I'm asking this question:

How do I fork a git repo such that I get all the branches & tags of the upstream?

What I've tried is:

    git init
    git remote add origin <ORIGIN_URL> # i.e. my repo
    git remote add upstream <UPSTREAM_URL> # i.e. the repo I want to fork
    git push --all origin

But that last line fails when I would expect it to work. Any ideas?
