git 克隆 - 默认分支
git clone - default branch
从我的 git 实验室服务器克隆一个 git 存储库后,它没有检出 master,因为 origin/HEAD 指向其他分支 'origin/foo'。在gitlab中,默认分支设置为master。
如何将 origin/HEAD 从 'origin/foo' 移动到指向 'origin/master',以便更多的克隆自动检出 origin/master?
克隆后,git 远程显示原始状态:
HEAD branch: foo
git remote -r seconds that:
origin/HEAD -> origin/foo
我希望 HEAD 分支指向 master,但是 - 在 gitlab 中 - 默认分支已经设置为 master。
这道题,我觉得你需要远程操作。做类似的事情:
git checkout master.
让 HEAD 引用 master。
这只能在服务器端完成。对于 GitLab,它在您的项目中完成,设置(左侧边栏中的最后一项),"Default Branch"(第三个文本字段)。
目前(2016 年 3 月)显然存在一个问题,这意味着 GitLab 报告的默认分支并不总是与 git remote show origin
报告的 HEAD 分支相同。将 GitLab 默认分支设置为其他任何分支,然后将其设置回 master,对@rralf 有效。
除了 ,值得补充的是,如果您的客户端 git 非常旧(也就是说,早于 1.8.5,尽管修复程序被反向移植到 1.8.4.3好吧),它可能不会选择正确的分支。
当服务器的 HEAD
引用解析为提交 ID,该提交 ID 也是 多个 分支的尖端时,就会出现问题。在这些旧版本的 git 上,clone
进程无法理解 HEAD -> ...
方向,而只是获取 HEAD
解析到的原始提交 ID。它还获取每个分支的提交 ID,然后选择一些具有该提交 ID 的分支(本质上是随机的)。
较新的客户协商符号样式转移,并且每次都获得正确的分支。但是,如果您坚持使用旧的,一种解决方法是确保 HEAD
解析到的 ID 仅与一个分支相关联。也就是说,对于匹配的每个其他分支,进行虚拟提交,以便该分支的尖端不再是相同的 ID。
(如果服务器太旧,这也会失败,因为那些旧服务器在协商阶段不接受符号传输选项,但当然 GitLab 并没有像某些 Linux 我们不会 CentOname 的发行版,咳咳。)
从我的 git 实验室服务器克隆一个 git 存储库后,它没有检出 master,因为 origin/HEAD 指向其他分支 'origin/foo'。在gitlab中,默认分支设置为master。
如何将 origin/HEAD 从 'origin/foo' 移动到指向 'origin/master',以便更多的克隆自动检出 origin/master?
克隆后,git 远程显示原始状态:
HEAD branch: foo
git remote -r seconds that:
origin/HEAD -> origin/foo
我希望 HEAD 分支指向 master,但是 - 在 gitlab 中 - 默认分支已经设置为 master。
这道题,我觉得你需要远程操作。做类似的事情:
git checkout master.
让 HEAD 引用 master。
这只能在服务器端完成。对于 GitLab,它在您的项目中完成,设置(左侧边栏中的最后一项),"Default Branch"(第三个文本字段)。
目前(2016 年 3 月)显然存在一个问题,这意味着 GitLab 报告的默认分支并不总是与 git remote show origin
报告的 HEAD 分支相同。将 GitLab 默认分支设置为其他任何分支,然后将其设置回 master,对@rralf 有效。
除了
当服务器的 HEAD
引用解析为提交 ID,该提交 ID 也是 多个 分支的尖端时,就会出现问题。在这些旧版本的 git 上,clone
进程无法理解 HEAD -> ...
方向,而只是获取 HEAD
解析到的原始提交 ID。它还获取每个分支的提交 ID,然后选择一些具有该提交 ID 的分支(本质上是随机的)。
较新的客户协商符号样式转移,并且每次都获得正确的分支。但是,如果您坚持使用旧的,一种解决方法是确保 HEAD
解析到的 ID 仅与一个分支相关联。也就是说,对于匹配的每个其他分支,进行虚拟提交,以便该分支的尖端不再是相同的 ID。
(如果服务器太旧,这也会失败,因为那些旧服务器在协商阶段不接受符号传输选项,但当然 GitLab 并没有像某些 Linux 我们不会 CentOname 的发行版,咳咳。)