Well, a lot of answers. Mine will be one of the shortest. You want to push to a new server, but also to keep all the history and branches:
git clone --mirror https://git1.com/project/repo_name.git
cd repo_name
git branch
git remote set-url origin https://git2.com/project/repo_name.git
git push --mirror