git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git remote set-head not working?

From
ESEugene Sajine <euguess@gmail.com>
Date
Dec 18, 2009, 23:55 UTC
Message-ID
<76c5b8580912181555i39484811t3aa641254c07dcce@mail.gmail.com>
In-Reply-To
<76718490912181328k5f87d82u499b7a1eba471126@mail.gmail.com>
Show 11 quoted lines
> The remote command is about updating things under .git/refs/remotes,
> not about updating a remote server. For updating a remote server,
> there is really only push. Clear as mud?
>
> It is expected that the person setting up the bare repo is the person
> who knows best which is the "default" branch. Which is why clone uses
> the remote HEAD as the default branch to checkout.
>
> But, if you don't like that, you can always use:
>
> % git clone -b master ...
didn't know that, thanks!
Show 15 quoted lines
>> Secondly, I don't really understand what is the purpose of "git remote
>> set-head" if the change cannot be transferred to the actual origin
>> repo, so it will start serving another branch as default?
>
> Hmm, the man page says:
>
>       set-head
>           Sets or deletes the default branch ($GIT_DIR/remotes/<name>/HEAD)
>           for the named remote. Having a default branch for a remote is not
>           required, but allows the name of the remote to be specified in lieu
>           of a specific branch. For example, if the default branch for origin
>           is set to master, then origin may be specified wherever you would
>           normally specify origin/master.
>
> This seems clear to me, but I guess if you expect that "git remote"...

terms i'll use here: remote - instance created using git remote add or by cloning origin - actual remote repo I cloned from

If it would be exactly as you said then it would probably not be so confusing. The problem here is that if set-head is only about the remote, then why after i change it from master to qa and "git show remote origin" doesn't show this change? Bug? Probably, because "git show remote origin" actually queries origin for this info and always shows origin HEAD branch, as Jeff pointed out. If this is the case then there is an inconsistency between those two commands which caused this confusion. Please, correct me If i'm wrong but i really think that there should be a way to not only set it up for remote but also for origin , where the remote points to if you have push rights of course.

Of course all of this could be avoided if I knew that i have to be explicit during cloning from my colleagues, because their HEAD may be pointing to some BUTT, which I don't even want to know about;)

Thanks, Eugene

Previous: Jay Soffian
Message 7 of 7 in “git remote set-head not working?”
  1. Eugene SajineDec 18, 2009
  2. Jeff KingDec 18, 2009
  3. Eugene SajineDec 18, 2009
  4. Jay SoffianDec 18, 2009
  5. Junio C HamanoDec 18, 2009
  6. Jay SoffianDec 18, 2009
  7. Eugene SajineDec 18, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.