git clone <repo>
来共享它。 当他们克隆时,他们会得到主分支的检出(除非他们使用 git clone -n
),因为repo.git/HEAD
包含ref: refs/heads/master
,使这个分支成为活动分支。问题是,如何正确更改活动分支? 我可以直接修改
repo.git/HEAD
文件,但那看起来很恶劣,而且有点像破解。我尝试在仓库
.git
目录中执行git checkout <otherbranch>
,但失败了,因为我不在工作树中。我尝试过
git update-ref HEAD refs/heads/otherbranch
,但那只是将refs/heads/master更新为与refs/heads/otherbranch相同(好吧,我在一个虚拟仓库中做了那个操作,而不是在生产仓库中!)我尝试过
git update-ref --no-deref HEAD refs/heads/otherbranch
,几乎成功了。 它更新了HEAD
文件,但将其设置为由refs/heads/otherbranch
指向的提交的SHA1值。我正在使用git版本
1.7.0.2.msysgit.0
进行测试。我猜想不可能通过
git push
来完成此操作,因为允许所有人更改默认分支似乎有点不安全!但是在仓库.git
目录中有更好的方法来完成这个操作,而不是直接修改HEAD
文件。