Git:可以重命名master吗? [复制]

Posted

技术标签:

【中文标题】Git:可以重命名master吗? [复制]【英文标题】:Git: Is it possible to rename master? [duplicate] 【发布时间】:2019-08-13 08:43:14 【问题描述】:

是否可以在 git 中重命名 master? 如果那不可能,有没有办法获得类似的结果?例如创建一个具有自定义名称的分支(比如 batman),将该分支设为新的 master 并删除旧的 master?

举例说明。这就是我现在拥有的:

user@machine gitprojectpath (master)
$

这就是我想要的

user@machine gitprojectpath (batman)
$

【问题讨论】:

master 在 git 中并不特殊。它经常被用作主要分支的事实是纯粹的约定。查看How do I rename a local Git branch?的重命名部分。 @RomainValeri 不完全。在 GitLab 中,推送到存储库的第一个分支(不一定命名为 master)成为具有许多特殊含义的 默认分支。它是客户端在克隆上签出的默认分支,也是默认的合并请求目标。此外,它通常是受保护的 你为什么要这个? 绝对可以!请参阅@JonathonReinhart 的回答。 @Bernhard:(名称)master 从技术角度来看并没有什么特别之处,它只是“默认”分支的 git 约定。同样适用于 origin 作为“默认”远程名称。 【参考方案1】:

是的。

首先,澄清你的问题。

在 GitLab 中,推送到存储库的第一个分支(不一定命名为 master)成为具有特殊含义的默认分支。它是客户端在克隆上签出的默认分支,也是默认的合并请求目标。此外,它通常受到保护。

当您说“重命名 master”时,我假设您的意思是重命名分支,并且更改 GitLab 中的默认分支。

先在本地重命名分支。

git checkout master
git branch -m newname

然后推送到服务器

git push -u origin newname

现在转到 GitLab 网络用户界面。在设置 > 存储库下,将“默认分支”更改为 newname

您还需要确保将newname 标记为受保护,以防止意外丢失。

然后从分支页面删除 GitLab 上的master


话虽如此,请不要这样做master 是一个非常有名的约定,这种变化会让其他贡献者感到惊讶。

【讨论】:

“请不要这样做” - 也许 OP 已经使用他们的主分支进行发布,现在想将其重命名为“发布”(没有分支),这样其他一些开发分支可以用作新的主人吗?没有批评,只是想知道为什么要这样做...... :-) 这有意义吗? 这是另一个可能有人想要有效地重命名它的原因; zdnet.com/article/…

以上是关于Git:可以重命名master吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

git - 远程仓库的删除和重命名

在本地和远程重命名 Git 分支? [复制]

git:重命名本地分支失败

Git 详细介绍查看删除重命名远程分支和tag

批量复制重命名,重复时提示

文件夹重命名的问题