【问题标题】:Using Gitlab's API, how can I switch between branches?使用 Gitlab 的 API,如何在分支之间切换?
【发布时间】:2013-06-24 20:19:41
【问题描述】:

我想使用 Gitlab 的 API 从我的 master 分支切换到我的 development 分支,我已经研究了所有可用的文档化 API here,但没有这样的 API。

以前有人尝试过吗,因为这是一种非常常见的情况?

是否可以通过 API 做同样的事情?

【问题讨论】:

    标签: git gitlab


    【解决方案1】:

    在分支之间切换?

    在 GitLab 服务器端(这是 Gitlab API 所指的),您无需切换分支,因为 GitLab 正在管理 bare repos(没有工作树的存储库,已签出任何分支)。

    您可能的意思是:“如何更改默认分支”(当用户克隆 GitLab 管理的远程存储库时默认签出的分支)。

    gitolite 可以做到这一点(参见“git change default branch (gitolite)”)。
    但是,它不适用于 GitLab:相关 API 将是“Projects”,但“branch”部分不包含任何更改由 GitLab 管理的裸仓库的 HEAD 的符号引用的任何内容。

    这意味着你必须在服务器本身上,在裸仓库中,才能执行:

    git-symbolic-ref HEAD refs/head/development 
    

    onionjake 提到in the comments

    如果您使用的是综合包,您可能没有在通常的位置安装 git。
    我必须这样做:

    /opt/gitlab/embedded/bin/git symbolic-ref HEAD refs/heads/development.
    

    【讨论】:

    • 我想切换分支(或者更恰当地更改我的默认分支)因为我想获取不同分支的存储库树(用于主分支、开发等),如果你看到 Gitlab 的 Web 界面,当你点击在文件选项卡上,您可以在下拉列表中选择分支,存储库树会更改。他们是怎么做到的呢?有什么方法可以使用现有的 API 来实现吗?我愿意为此编写一个新的 API,但如果我可以使用现有的 API 会更好。
    • 我明白了,再次感谢你,我只需要发送一个 ref_name 参数作为分支名称来列出存储库树 API。
    • @ArifNadeem 是的,支持列出 repo 树。
    • 如果您使用的是综合包,您可能没有在通常的位置安装 git。我不得不做/opt/gitlab/embedded/bin/git symbolic-ref HEAD refs/heads/development
    • @onionjake 好点。我已将其包含在答案中以提高知名度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 2021-07-05
    • 2018-02-01
    相关资源
    最近更新 更多