我有一个裸存储库,用作我项目的中央存储.所有开发人员都git clone <repo>愿意与之分享.当他们进行克隆时,他们会检查主分支(除非他们这样做git clone -n)因为repo.git/HEAD包含ref: refs/heads/master,使其成为活动分支.
问题是,如何正确更改活动分支?我可以简单地直接破解repo.git/HEAD文件,但这看起来很讨厌,而且,哈哈.
我尝试git checkout <otherbranch>在repo .git目录中做,但是因为我不在工作树中而失败了.
我试过git update-ref HEAD refs/heads/otherbranch但是刚刚更新的refs/heads/master与refs/heads/otherbranch相同(好吧,我在虚拟存储库中做了那个,而不是我的生产!)
我试过git update-ref --no-deref HEAD refs/heads/otherbranch,这几乎奏效了.它更新了HEAD文件,但它将其设置为指向的提交的SHA1 refs/heads/otherbranch.
我正在使用git版本进行测试1.7.0.2.msysgit.0.
我猜测没有办法做到这一点git push,因为允许所有和各种更改你的默认分支似乎有点不安全(!),但肯定有一个更好的方法在repo .git目录中执行它比直接黑客HEAD文件.
如何将Git遥控器的HEAD引用设置为指向除"master"之外的其他内容?
我的项目有一个不使用"主"分支的策略(所有分支都有有意义的名称).此外,规范主存储库只能通过ssh://访问,没有shell访问权限(如GitHub或Unfuddle).
我的问题是远程存储库仍然有一个HEAD引用refs/heads/master,但我需要它指向一个不同的分支.这导致两个问题:
克隆回购时,有这个,
警告:远程HEAD是指不存在的ref,无法结帐.
这令人困惑和不方便.
基于Web的代码浏览器依赖于HEAD作为浏览树的基础.我需要HEAD指向一个有效的分支,然后.
我最近使用Tortoise Git提交后出错:
"无法获取所有引用.libgit2返回:损坏的松散引用文件"
当我去检查日志时弹出.
关于如何纠正这个问题的任何想法?