If your local copy of a repository is out of sync with, or "behind," the upstream
repository you're pushing to, you'll get a message saying non-fast-forward updates were rejected.
This means that you must retrieve, or "fetch," the upstream changes, before
you are able to push your local changes.

Note that there is a space before the colon. The command resembles the same steps
you'd take to rename a branch. However, here, you're telling Git to push nothing
into BRANCHNAME on REMOTENAME. Because of this, git push deletes the branch
on the remote repository.

When you clone a repository you own, you provide it with a remote URL that tells
Git where to fetch and push updates. If you want to collaborate with the original
repository, you'd add a new remote URL, typically called upstream, to
your local Git clone: