如何将我的git'master'分支重命名为'release'?

Kyl*_*yes 83 git version-control branch git-branch

我们希望为我们的项目强制执行一个新策略,现在主分支称为发布分支,以确保更清楚如何使用分支.当然,我们也将开发和发布候选分支.

我知道我可以通过简单地使用以下命令在本地重命名master分支:

git branch -m master release
Run Code Online (Sandbox Code Playgroud)

但是,这只是本地的.即使我把它推到遥控器上,HEAD仍然指向远程主分支.我想完全摆脱master分支,并在初始克隆时创建默认的本地分支,然后释放.

我怎样才能做到这一点?

编辑:似乎由于原点是在一个有名的服务器上,我得到错误删除主分支.我现在试图看看是否可以更改它,以便默认分支是'release'.

Ada*_*ruk 105

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
Run Code Online (Sandbox Code Playgroud)

  • 您正在使用github或类似的东西,您需要将默认分支设置为其他内容:http://matthew-brett.github.com/pydagogue/gh_delete_master.html或者只是将master留在那里并忽略它. (6认同)
  • 当我尝试git push --delete时,我收到以下错误:禁止删除当前分支 (2认同)

Jef*_*and 9

检查你的主分支

git checkout master
Run Code Online (Sandbox Code Playgroud)

创建发布分支并切换到它

git branch release
git checkout release
Run Code Online (Sandbox Code Playgroud)

将其推送到服务器

git push origin release
Run Code Online (Sandbox Code Playgroud)

删除服务器上的主分支引用

git push origin :master
Run Code Online (Sandbox Code Playgroud)

删除本地主分支

git branch -d master
Run Code Online (Sandbox Code Playgroud)

  • 通过这些步骤,我可以确定遇到与上述相同的错误。 (2认同)

Chr*_*ken 5

注意:此答案适用于您具有命令行访问权限的自托管 Git 服务器。

由于remote master确实不允许尝试从客户端删除并且我确实认为禁止denyDeleteCurrent是有道理的,因此我不想更改该设置。

但是,我发现,如果您可以通过命令行访问远程服务器,重命名主服务器最简单方法是直接在远程服务器上运行重命名命令。

这对我有用:

  1. 通过SSH登录远程git服务器
  2. 转到项目的 xxx.git 文件夹
  3. 跑: git branch -m master release

现在远程存储库release用作其默认分支,并且git clone任何客户端在该存储库上的任何内容都将默认检出发布分支。

在设置裸存储库以根据您的需要对其进行配置后,这也非常有用。