Pushing a
branch means to get the branch's head ref from a remote
repository, find out if it is a direct ancestor to the branch's local head ref, and in that case, putting all objects, which are
reachable from the local head ref, and which are missing from the remote repository, into the remote
object database, and updating the remote head ref.
If the remote head is not an ancestor of the local head, the push fails.
-u / --set-upstream
$ git clone …
$ git checkout -b V1.1
… hack hack hack …
$ git commit …
$ git push
fatal: The current branch V1.1 has no upstream branch.
To push the current branch and set the remote as upstream, use …
$ git push --set-upstream origin V1.1