【问题标题】:how to rename a master branch when using gitolite使用 gitolite 时如何重命名主分支
【发布时间】:2014-12-07 20:03:28
【问题描述】:

我正在使用 gitolite 进行 git 访问权限管理。

我想将主分支重命名为生产。

我对 gitolite 中的那个 repo 有 RW+ 权限

我在本地重命名分支:

git 分支 -m 主生产

然后我想删除远程主分支,但我得到:

remote: error: By default, deleting the current branch is denied, because the next
remote: error: 'git clone' won't result in any file checked out, causing confusion.
remote: error:
remote: error: You can set 'receive.denyDeleteCurrent' configuration variable to
remote: error: 'warn' or 'ignore' in the remote repository to allow deleting the
remote: error: current branch, with or without a warning message.
remote: error:
remote: error: To squelch this message, you can set it to 'refuse'.
remote: error: refusing to delete the current branch: refs/heads/master
To gitolite@virgo:/puppeteer
 ! [remote rejected] master (deletion of the current branch prohibited)

如何在远程也删除主分支?

【问题讨论】:

    标签: git gitolite


    【解决方案1】:

    问题是你为什么要删除主分支。创建新分支并将新分支推送到远程服务器要容易得多。

    git checkout master
    git branch production
    git checkout production
    git push origin production
    

    然后你就有了一个新的远程分支。

    【讨论】:

    • 我不想在那个 repo 中有一个名为 master 的分支,因为它将用于 puppet 环境,并且分支名称必须代表环境名称。简而言之,我想将主分支重命名为生产分支,并且该分支的行为就像主分支一样。因此,当任何人克隆 repo 时,他的主要分支将是生产。
    • 你不需要重命名分支。从 master 创建一个新分支并推送它们。之后删除主分支。
    • 这正是我所做的......但由于上述错误,我无法删除远程主分支,如果我使用 gitolite 管理,我如何设置 receive.denyDeleteCurrent 忽略远程仓库?
    • 这是一个老问题,但我遇到了确切的问题(与 puppet 一起使用的 repo),我能找到的唯一选择是删除整个远程 repo 并重新推送它。
    【解决方案2】:

    我意识到这个问题已经有 6 年之久了,但答案是,如果将来有人克隆该分支,您不想在不告诉 git 服务器使用什么的情况下删除默认分支。

    answer 中引用了 gitolite 的说明。

    请注意,您需要启用symbolic-ref 命令才能远程执行此操作,方法是将其添加到您服务器上git 用户的.gitolite.rc 文件中的命令列表中。

    启用后,您应该可以运行

    ssh <gituser@yourserver> symbolic-ref puppeteer HEAD refs/heads/production
    

    更改默认分支,然后您应该可以删除旧的master 分支。


    根据@LaomaiWeng 的评论更新了我缺少“s”的地方

    【讨论】:

      【解决方案3】:

      我无法评论 gaige 的答案,所以我将其添加为答案,但我必须使用 refs/heads/production(注意 heads 中的 s),因为那是指向 ref 的路径我的 Git 仓库。 another answer 在 gaige 链接的下面也有heads,当前的Git documentation 也使用heads

      【讨论】:

        猜你喜欢
        • 2022-08-09
        • 2016-01-18
        • 2017-06-06
        • 1970-01-01
        • 2016-02-12
        • 2011-09-29
        • 2020-10-02
        相关资源
        最近更新 更多