将Git远程HEAD更改为指向除master之外的其他东西

将Git远程HEAD更改为指向除master之外的其他东西

如何将Git遥控器的HEAD引用设置为指向除“master”之外的其他内容?

我的项目有一个不使用“主”分支的策略(所有分支都有有意义的名称)。此外,规范主存储库只能通过ssh://访问,没有shell访问权限(如GitHub或Unfuddle)。

我的问题是远程存储库仍然有一个HEAD引用refs / heads / master,但我需要它指向一个不同的分支。这导致两个问题:

  1. 克隆回购时,有这个,

    警告:远程HEAD是指不存在的ref,无法结帐。

    这令人困惑和不方便。

  2. 基于Web的代码浏览器依赖于HEAD作为浏览树的基础。我需要HEAD指向一个有效的分支,然后。


BIG阳
浏览 6084回答 3
3回答

侃侃无极

一年前GitHub上几乎有同样的问题。我的想法是重命名主分支:git&nbsp;branch&nbsp;-m&nbsp;master&nbsp;developmentgit&nbsp;branch&nbsp;-m&nbsp;published&nbsp;mastergit&nbsp;push&nbsp;-f&nbsp;origin&nbsp;master让主人拥有你想让人们使用的东西,并在分支机构中完成所有其他工作。(a“&nbsp;git-symbolic-ref HEAD refs/head/published”不会传播到远程仓库)这类似于“&nbsp;如何在Git中删除origin / master&nbsp;”。正如在这篇帖子中所说:(强调我的)“&nbsp;git clone”只创建一个本地分支。为此,它查看HEAD ref远程仓库的内容,并创建一个与其引用的远程分支同名的本地分支。所以要包装它,你有repo A并克隆它:HEAD引用refs/heads/master和存在- >从origin / master开始,您将获得一个名为master的本地分支HEAD引用refs/heads/anotherBranch和存在- >从一anotherBranch开始就调用一个本地分支origin/anotherBranchHEAD引用refs/heads/master并且不存在- >“git clone”抱怨不确定是否有任何方法可以直接修改HEAD回购中的ref。(这是你问题的全部要点,我知道;))也许唯一的方法就是“为穷人出版”,你可以:&nbsp;$&nbsp;git-symbolic-ref&nbsp;HEAD&nbsp;refs/head/published &nbsp;$&nbsp;git-update-server-info &nbsp;$&nbsp;rsync&nbsp;-az&nbsp;.git/*&nbsp;server:/local_path_to/git/myRepo.git/但这将涉及对服务器的写访问,这并不总是可行的。正如我在“&nbsp;Git:在一个裸存储库中更改Active Branch的正确方法?&nbsp;”中解释的那样,git remote set-head不会改变远程仓库上的任何内容。它只会更改本地仓库中本地存储的远程跟踪分支remotes/<name>/HEAD。

开心每一天1111

这仅适用于存储库的本地副本(“客户端”)。请在下面查看其他人的评论。使用最新版本的git(2014年2月),正确的程序将是:git remote set-head $REMOTE_NAME $BRANCH因此,例如,将远程头部切换origin到分支develop将是:git remote set-head origin develop

守着一只汪

既然你提到GitHub,要在他们的网站上进行,只需进入你的项目,然后......admin > Default Branch > (choose something)完成。
打开App,查看更多内容
随时随地看视频慕课网APP