如何配置git存储库以便克隆后检出除master之外的分支?

时间:2010-05-21 04:54:43

标签: git

我正在尝试使用一堆存储库来设置一个git服务器。我打算使用http://nvie.com/git-model文章中描述的分支模型。所以我将在存储库中至少有两个分支(名为 master develop )。

克隆后,git检出 master 分支。是否有一个git配置选项,以便 develop 分支将被检出?

实际上,我希望git clone my_repo_url的行为为git clone -b develop my_repo_url

2 个答案:

答案 0 :(得分:5)

git clone会:

  

创建并检出从克隆的存储库当前活动分支分叉的初始分支。

(即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

相关问题