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

Re: git remote set-head not working?

From
Jay Soffian <jaysoffian@gmail.com>
Date
Dec 18, 2009, 21:28 UTC
Message-ID
<76718490912181328k5f87d82u499b7a1eba471126@mail.gmail.com>
In-Reply-To
<76c5b8580912180938s2b885efax33be860f963ba92f@mail.gmail.com>
On Fri, Dec 18, 2009 at 12:38 PM, Eugene Sajine <euguess@gmail.com> wrote:
> Yes. I was trying to change the HEAD on the bare remote (origin) repo
> and the concept here is really confusing.

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?

Show 5 quoted lines
> Firstly, when i cloned from some repo "clone" comand is setting HEAD
> branch for remote in accordance to where the HEAD is pointing on
> origin side. I just recently realized that and i'm not sure it is best
> thing to do - i think it should default to origin/master first, if it
> doesn't exist then to where the HEAD is pointing.

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 ...
And you'll get master checked out instead of whatever the remote HEAD is.
> 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" updates the remote server I can see some confusion. Perhaps the DESCRIPTION for git remote should include something like:

"This command updates the local repository only. For updating a remote repository, see git push."

> I might not
> have access to the server to perform git symbolic-ref on my bare repo
> (imagine the repo on github), so it might be not an option.

Understood. I'm not sure whether the send-pack/receive-pack protocol supports the notion of "I want to change what HEAD points to."

j.
Previous: Eugene SajineNext: Junio C Hamano
Message 4 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.