我正在尝试使用一堆存储库来设置一个git服务器。我打算使用http://nvie.com/git-model文章中描述的分支模型。所以我将在存储库中至少有两个分支(名为 master 和 develop )。
克隆后,git检出 master 分支。是否有一个git配置选项,以便 develop 分支将被检出?
实际上,我希望git clone my_repo_url
的行为为git clone -b develop my_repo_url
。
答案 0 :(得分:5)
创建并检出从克隆的存储库当前活动分支分叉的初始分支。
(即HEAD在那个远程回购中所指的地方)
因此,如果在远程服务器上使用develop检出repo,任何克隆都会检查开发分支。
但是,您的远程git repo可能是 bare repo 一个(没有工作树),以便允许拉并推送。 在这种情况下,您需要确保其HEAD指的是开发分支 如果它当前没有,克隆它,checkout开发分支,推送一个简单的添加,并看看是否有任何后续克隆进行结帐开发。
这只会证明裸机的HEAD可以通过任何推动来影响它 因此,真正的解决方案是在裸露远程仓库上设置pre-receive hook(不是更新或提交挂钩,因为它是一个裸仓库),以确保HEAD引用开发分支(如果存在),否则为主。
注意:this thread提到你不能直接影响远程仓库上的HEAD:
远程命令是关于更新
.git/refs/remotes
下的内容,而不是更新远程服务器。对于更新远程服务器,实际上只有推送。
在GitHub上,request exists在一个GitHub(裸定义)repo上设置HEAD。
答案 1 :(得分:1)
git clone
目前没有这样的选项,但您可以在克隆后查看其他分支,并更改'origin / HEAD'指向git remote set-head <remote>
的位置。
您可以改为git init
+ git remote add
使用-m <master>
选项+ git remote update
。