我有两个git分支:master和experimental。
Experimental变得很好,我想将它作为主分支。我想改名以重新排列,但是这就是我得到的:
nutebook:Stuff nathan$ git remote rename master old
error: Could not rename config section 'remote.master' to 'remote.old'
我使用 GitHub 和 Git-Tower。
以下是重命名主分支的指南,同样适用于重命名实验性分支。
以下是我的重命名步骤。
首先,在您的工作树中,将主分支本地重命名为其他名称。
git branch -m master old-dev
如果您当前在分支上,重命名分支是可行的,因此不需要切换到其他分支。
然后,将本地维护分支(2.63-branch)重命名为 master:
git branch -m 2.63-branch master
现在是时候操作远程仓库了。为了防止出错,你可能需要确保有一个最新的备份。首先,删除远程仓库的主分支:
git push origin :master
现在,把你的新主人给遥控器:
更新: 创建新分支时,远程侧需要使用refs/heads/前缀。如果分支已经存在(如上面的主分支),则在远程侧只需要提供分支名称。 ...和你现在改名的旧主分支:git push origin master:refs/heads/master
git push origin old-dev:refs/heads/old-dev
最后,删除您维护分支的旧名称,以防混淆:
git push origin :2.63-branch
当客户端进行拉取操作时,他们将获取到“新”的主分支。
参见此网站。
我认为最简单的方法是检出实验分支,删除远程主分支,然后将本地实验分支推送为新的远程主分支。
// delete the remote master branch by pushing null
// (the space in front of the semicolon) in this branch
git push origin :master
// push local experimental to remote master
git push origin experimental:master
master
是一个分支,不像 origin
一样是一个远程仓库。如果你想将你的实验性工作合并到你的 master 分支中,只需简单地进行合并操作:
git checkout master
git merge experimental
experimental
没有被rebase到当前的master
分支,那么master
上可能有一些OP想要摆脱的东西。 - Lutz Precheltgit push <remote> :<branch name>
然后将其推送为其他内容。
git push origin :master
)。 - dave mankoffgit push -u origin master
(在使用Git 1.7时,我不需要完整的refs/heads前缀)。 - Tom Saleeba