On Mon, 01 Oct 2007 15:32:58 -0700, Junio C Hamano wrote: > "master:master") does not exist there, and we do not create it > unless you give a full refname that begins with refs/ (so that > push can tell if you want to create a tag or a branch). And why is that? Why isn't pushing a branch interpreted as wanting to create a branch and pushing a tag interpreted as wanting to create a tag unless git is told differently? > $ git push /pub/git/foo.git master:refs/heads/master I mean, it's nice that the advanced user can get all specific and invoke the low-level refs/heads/ thing here. But what I'd really like to have instead is just: $ git push /pub/git/foo.git master Is there any reason that that shouldn't be interpreted as "master:master" and that that would in turn be interpreted as "create a remote refs/heads/master" ? That would really be much kinder for new users. -Carl PS. As someone who has written some new-user documentation for git, there are a few low-level git notions that I would like to avoid in that documentation. For example, one is FETCH_HEAD. In my first attempt at porting hgbook-chapter2 to git I found myself using FETCH_HEAD to simulate "hg incoming". Thankfully, I was able to rewrite it by taking advantage of remotes and using "master..origin" instead. Another example is "refs/heads". I avoided this partially by inly documenting how to push all branches with "--all", but I'd much rather be able to say that the user could git push URL branch another-branch..." or "git push URL --all" for convenience. Finally, git-push itself spews quite a bit of output with "refs/heads" in it that I don't think is useful at all. For talking with the user, git should say "branch master" not "refs/heads/master".
Attachment:
pgpFCCGQGx16s.pgp
Description: PGP signature