So I want to update my remote fork with all my local branches. Normally I'd do this: $ git push --mirror fork However this will also push everything under `refs/remotes` which I do not want. And it fails if I specify a refspec parameter with --mirror. Is there a way to achieve this through one or more git commands? Note I'm doing this on a non-bare clone and have to keep it that way since I'm pushing branches I actively work on. An intrinsic benefit of what I'm trying to do is that the mirror command will also batch delete branches on the remote that do not exist locally, which is behavior I want since I do not need them anymore. Thanks in advance.