According to git push manual page:
git push origin experimental
Find a ref that matches experimental
in the source repository (most likely, it would find refs/heads/experimental
), and update the same ref (e.g. refs/heads/experimental
) in origin repository with it.
If experimental
did not exist remotely, it would be created.
It is the same than:
git push origin experimental:refs/heads/experimental
Create the branch experimental
in the origin repository by copying the current experimental
branch.
This form is only needed to create a new branch or tag in the remote repository when the local name and the remote name are different; otherwise, the ref name on its own will work.
Or, like mentioned in git tip, you can set up a "Branch’s Default Remote":
You can use git config to assign a default remote to a given branch. This default remote will be used to push that branch unless otherwise specified.
This is already done for you when you use git clone, allowing you to use git push without any arguments to push the local master branch to update the origin repository’s master branch.
git config branch.<name>.remote <remote>
can be used to specify this manually.