我有一个裸仓库,用作我的项目的中央存储。所有开发人员都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 目录中。
米脂