There is currently no porcelain for dealing with remote HEADs (i.e. $GIT_DIR/remotes/<remote>/HEAD). This series: 1) Refactors locate_head() from builtin-clone.c to remote.c so it can be used by builtin-remote.c as well. I also renamed it to guess_remote_head(). Daniel suggested having it specifically check that it returns a ref from refs/heads/, but I wasn't sure what impact that might have (good or bad...), so I punted on that change. 2) Teaches git remote show to display the remote HEAD: $ git remote show origin * remote origin URL: git://git.kernel.org/pub/scm/git/git.git HEAD: master 3) Teaches git remote a new "set-head" verb: To set a remote HEAD explicitly: $ git remote set-head <name> <branch> To set a remote HEAD to match the upstream repo: $ git remote set-head <name> -a To delete a remote HEAD: $ git remote set-head <name> -d I changed it from "sethead" to "set-head" per Jeff. I also remembered to update git-completion.bash this time. 4) Documents the new set-head verb. I also correct the git remote man page w/respect to the "-m <master>" option. The man page implied that the remote HEAD was set automatically when adding a remote (a la git clone), but this is not true. And, since I couldn't find anywhere else that the point of having a remote HEAD is documented, I documented it here. Jay Soffian (4): builtin-clone: move locate_head() to remote.c so it can be re-used builtin-remote: move duplicated cleanup code its own function builtin-remote: teach show to display remote HEAD builtin-remote: add set-head verb Documentation/git-remote.txt | 20 ++++++- builtin-clone.c | 41 +------------- builtin-remote.c | 96 +++++++++++++++++++++++++++++--- contrib/completion/git-completion.bash | 2 +- remote.c | 37 ++++++++++++ remote.h | 9 +++ 6 files changed, 156 insertions(+), 49 deletions(-) -- 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