http://www.kernel.org/pub/software/scm/git/docs/git-push.html reads: | git push origin master:refs/heads/experimental | | Create the branch experimental in the origin repository by copying the | current master 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. It appears to me that the ref name on its own will also work to create a new branch, at least with local repositories: $ (mkdir a && cd a && git init) Initialized empty Git repository in /tmp/a/.git/ $ mkdir b && cd b && git init Initialized empty Git repository in /tmp/b/.git/ $ pwd /tmp/b $ touch x && git add x && git commit [master (root-commit)]: created 87a90f5: "NA" 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 x Now the push from '/tmp/b' to '/tmp/a': $ git push /tmp/a master:foo Counting objects: 3, done. Writing objects: 100% (3/3), 209 bytes, done. Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. To /tmp/a * [new branch] master -> foo Am I missing something? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html