How do I rename my git 'master' branch to 'release'?
我们希望为我们的项目实施一个新的策略,即现在将主分支称为发布分支,以确保更清楚地了解如何使用分支。当然,我们也将开发和发布候选分支。
我理解我可以通过以下简单的方法在本地重命名主分支:
1 | git branch -m master release |
然而,这只是局部的。即使我把这个推到遥控器上,头部仍然指向遥控器的主分支。我想彻底摆脱主分支,并在初始克隆时设置默认的本地分支,即释放。
我怎样才能做到这一点?
编辑:似乎源站在Gitorious服务器上,删除主分支时出错。我现在想看看是否可以更改这个,以便默认的分支是"release"。
1 2 3 4 5 | git checkout -b release master # create and switch to the release branch git push -u origin release # push the release branch to the remote and track it git branch -d master # delete local master git push --delete origin master # delete remote master git remote prune origin # delete the remote tracking branch |
签出您的主分支
1 | git checkout master |
创建发布分支并切换到它
1 2 | git branch release git checkout release |
把它推到服务器上
1 | git push origin release |
删除服务器上的主分支引用
1 | git push origin :master |
删除本地主分支
1 | git branch -d master |
注意:此答案适用于具有命令行访问权限的自托管Git服务器。
由于确实不允许从客户机中删除
但是,我发现重命名主iff的最简单方法是直接在远程服务器上运行rename命令。
这对我很有用:
现在,远程存储库使用
在设置了一个裸机存储库以根据您的需要对其进行配置之后,这也是非常有用的。
正如前面其他人所说,这里的问题是有意义的,这不会让您根据默认情况删除头分支。有两种方法可以解决这个问题。一种方法是登录gitorious服务器(使用ssh),在文件服务器上找到git存储库并添加:
1 2 | [receive] denyDeleteCurrent = warn |
到配置。
一个更简单的选项就是更改默认分支。转到Gitorious Web界面中的存储库,按"编辑存储库",然后设置"头更改Git存储库中头指向的符号引用"。完成此操作后,可以删除主分支。
理想情况下,您希望设置跟踪,因此请执行以下操作:
1 2 | git push origin HEAD:release git checkout --track origin/release |
现在,您想删除其他的吗?
1 2 | git branch -d master git push origin :master |
简单!