# 重命名分支

您可以更改仓库中分支的名称。

## 关于重命名分支

您可以在 GitHub.com 上的存储库中重命名分支。 有关分支的详细信息，请参阅“[分支](/zh/enterprise-cloud@latest/pull-requests/reference/branches)”。

重命名分支后，任何包含旧分支名称的网址都会自动重定向到重命名后分支的等效 URL。 还更新了分支保护政策以及打开的拉取请求（包括复刻的拉取请求）的基础分支和草稿版本。 如果重命名的分支是一个打开的拉取请求的主分支，那么该拉取请求将被关闭。

如果存储库的默认分支被重命名，GitHub 会在存储库的主页上提供说明，引导参与者更新他们的本地 Git 环境。

虽然文件 URL 会自动重定向，但原始文件 URL 未被重定向。 此外，如果用户对以前的分支名称执行了一个GitHub操作，`git pull`不会执行任何重定向。

GitHub Actions 工作流不会跟随重命名操作，因此如果您的存储库发布了某个操作，任何使用该操作的 `@{old-branch-name}` 都会失效。 您应该考虑添加带有原始内容的新分支，外加一个额外的提交报告，说明分支名称 关闭，并建议用户迁移到新的分支名称。

## 谁可以重命名分支

大多数分支都可以由具有存储库 **写入** 权限的任何用户重命名。

某些分支只能由存储库管理员重命名：存储库的默认分支，以及分支保护或存储库级分支规则集涵盖的任何分支。

当组织级或企业级规则集面向存储库中的分支时，重命名这些分支通常需要组织或企业管理员。

但是，组织和企业所有者可以允许存储库管理员重命名这些规则集涵盖的分支，前提是新分支名称仍受与当前名称相同的所有规则的约束，或者存储库管理员有权绕过这些规则。 更改默认分支的工作方式类似。

有关详细信息，请参阅 [允许存储库管理员使用组织规则集重命名分支](/zh/enterprise-cloud@latest/organizations/managing-organization-settings/allowing-repository-admins-to-rename-branches-with-organization-rulesets) 和 [在企业中实施仓库管理策略](/zh/enterprise-cloud@latest/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-renaming-protected-branches)。

存储库管理员可创建和删除分支，只要其具有适当的权限。

## 重命名分支

1. 在 GitHub 上，导航到存储库的主页面。
2. 在左侧的文件树状视图中，选择 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-git-branch" aria-label="git-branch" role="img"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg> 分支下拉菜单，然后单击“View all branches”\*\*\*\*。 还可以在集成的文件编辑器顶部找到分支下拉菜单。

   ![存储库的文件树视图的屏幕截图。 分支的下拉菜单已展开，并用深橙色框出。](/assets/images/help/repository/file-tree-view-branch-dropdown-expanded.png)
3. 在要重命名的分支旁边，选择 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-kebab-horizontal" aria-label="More" role="img"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg> 下拉菜单，然后单击“ **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-pencil" aria-label="pencil" role="img"><path d="M11.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 0 1-.927-.928l.929-3.25c.081-.286.235-.547.445-.758l8.61-8.61Zm.176 4.823L9.75 4.81l-6.286 6.287a.253.253 0 0 0-.064.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064Zm1.238-3.763a.25.25 0 0 0-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 0 0 0-.354Z"></path></svg> 重命名分支**”。
4. 为分支输入新名称。
5. 查看有关本地环境的信息，然后单击“重命名分支”。

## 在分支名称更改后更新本地克隆

在存储库 GitHub中重命名分支后，任何具有存储库本地克隆的协作者都需要更新克隆。

从计算机上的仓库本地克隆中，运行以下命令以更新默认分支的名称。

```shell
git branch -m OLD-BRANCH-NAME NEW-BRANCH-NAME
git fetch origin
git branch -u origin/NEW-BRANCH-NAME NEW-BRANCH-NAME
git remote set-head origin -a
```

（可选）运行下面的命令来删除对旧分支名称的跟踪引用。

```shell
git remote prune origin
```