我有一个裸仓库,用作我的项目的中央存储。所有开发人员都git clone <repo>愿意与它分享。当他们进行克隆时,他们会git clone -n因为repo.git/HEAD包含而将master分支检出(除非这样做)ref: refs/heads/master,从而使之成为Active Branch。
问题是,如何正确更改活动分支?我可以repo.git/HEAD直接直接破解文件,但这看起来很讨厌,而且很hacky。
我尝试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 version进行测试1.7.0.2.msysgit.0。
我猜测没有办法做到这一点git push,因为允许所有人和其他人更改您的默认分支似乎有些不安全(!),但是肯定有.git比直接修改HEAD文件更好的方法在repo 目录中。
米脂