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

Sur*_*raj 3 git

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

克隆后,git检出master分支.是否有一个git配置选项,以便检查开发分支?

实际上我想git clone my_repo_url表现得像git clone -b develop my_repo_url.

Von*_*onC 5

git clone 将:

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

(即HEAD在那个远程回购中引用的地方)

因此,如果在远程服务器上使用develop检出repo,则任何克隆都将检出develop分支.

但是,很可能你的远程git repo是一个裸的repo(没有工作树),以便允许拉动和推动.
在这种情况下,您需要确保其HEAD引用开发分支.
如果它当前没有,克隆它,checkout开发分支,推送一个简单的添加,并看看是否有任何后续克隆进行结帐开发.

这只会证明裸机的HEAD可以受到任何推动的影响.
因此,真正的解决方案是在裸远程仓库上设置预接收挂钩(不是更新或提交挂钩,因为它是一个裸仓库),以确保HEAD引用开发分支(如果存在),否则为master.

注意:这个帖子提到你不能直接影响远程repo上的HEAD:

远程命令是关于更新内容.git/refs/remotes,而不是更新远程服务器.对于更新远程服务器,实际上只有推送.

在GitHub上,存在将HEAD设置在GitHub(裸定义)repo 上的请求.