如何在使用gitolite时重命名主分支

时间:2014-10-13 09:38:55

标签: git gitolite

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

我想将master分支重命名为production。

我在gitolite的回购中有RW + permision

我将分支localy重命名为:

git branch -m master production

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

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)

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

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

在此answer中引用了关于乙醇钠的说明。

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

启用后,您应该可以运行

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

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

答案 2 :(得分:0)

我无法对 gaige 的回答发表评论,因此我将其添加为答案,但我必须使用 refs/heads/production(注意 s 中的 heads),因为那是我的 Git 存储库中引用的路径。由 gaige 链接的 another answer 下方也有 heads,当前的 Git documentation 也使用 heads