我有一个裸仓库,用作我的项目的中央存储。所有开发人员都git clone <repo>愿意与它分享。当他们进行克隆时,git clone -n由于repo.git/HEAD包含ref: refs/heads/master,他们将获得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版本1.7.0.2.msysgit.0。
我猜测没有办法做到这一点git push,因为允许所有人和其他人更改您的默认分支似乎有些不安全(!),但是肯定有.git比直接修改HEAD文件更好的方法在repo 目录中。