我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

关于分支

使用分支隔离开发工作而不影响仓库中的其他分支。 每个仓库都有一个默认分支,也可有多个其他分支。 您可以使用拉取请求将一个分支合并到另一个分支。

本文内容

关于分支

分支允许您在仓库的包含区域中开发功能、修复错误或安全地试验新的想法。

始终可以从现有分支创建分支。 通常,您可能会从仓库的默认分支创建新的分支。 然后,您可以单独处理这个新分支,不受其他人对仓库所做更改的影响。 为构建功能而创建的分支通常称为功能分支或主题分支。 更多信息请参阅“创建和删除仓库中的分支”。

也可以使用分支发布 GitHub Pages 网站。 更多信息请参阅“关于 GitHub Pages”。

必须对仓库有写入权限才可在拉取请求中创建分支、打开拉取请求或者删除和恢复分支。 更多信息请参阅“GitHub 上的访问权限”。

关于默认分支

在 GitHub和 GitHub 上创建一个有内容的仓库时,将创建包含单一分支的仓库。 仓库中的第一个分支是默认分支。 默认分支是任何人访问您的仓库时 GitHub 显示的分支。 The default branch is also the initial branch that Git checks out locally when someone clones the repository. 除非指定不同的分支,否则仓库中的默认分支是新拉取请求和代码提交的基础分支。

默认情况下,GitHub 将任何新仓库中的默认分支命名为main

您可以为新仓库设置默认分支名称。 For more information, see "Managing the default branch for your repositories," "Managing the default branch name for repositories in your organization," and "Enforcing repository management policies in your enterprise account."

您可以为新仓库设置默认分支名称。 For more information, see "Managing the default branch for your repositories," "Managing the default branch name for repositories in your organization," and "Enforcing repository management policies in your enterprise account."

使用分支

对您的工作感到满意后,可以打开拉取请求以将当前分支(头部分支)的更改合并到另一个分支(基础分支)。 更多信息请参阅“关于拉取请求”。

在拉取请求合并或关闭后,可以删除头分支,因为不再需要。 您必须对仓库具有写入权限才能删除分支。 无法删除与打开的拉取请求直接关联的分支。 更多信息请参阅“删除和恢复拉取请求中的分支”。

如果您在拉取请求合并后删除头部分支,GitHub 会检查将已删除分支指定为基础分支的同一仓库中的任何开放拉取请求。 GitHub 将自动更新任何此类拉取请求,将其基础分支更改为合并的拉取请求的基础分支。 下图说明了这一点。

有人从 master 分支创建了一个名为 feature1 的分支,然后您从 feature1 创建了一个名为 feature2 的分支。 两个分支都有打开的拉取请求。 箭头指示每个拉取请求的当前基础分支。 目前,feature1feature2 的基础分支。 如果合并 feature2 的拉取请求,feature2 分支将合并到 feature1

merge-pull-request-button

在下一张图中,有人将 feature1 的拉取请求合并到了 master 分支,并且他们删除了 feature1 分支。 因此,GitHub 自动重新定位了 feature2 的拉取请求,使其基础分支现在变成了 master

merge-pull-request-button

现在合并 feature2 拉取请求时,它会合并到 master 分支。

使用受保护分支

仓库管理员可对分支启用保护。 如果您处理的是受保护分支,将无法删除或强制推送到该分支。 在分支可以合并之前,仓库管理员可以另外启用几项其他受保护分支设置来实施不同的工作流程。

注:如果您是仓库管理员,则即使拉取请求不符合要求,只要分支保护未设置为 "Include administrators"(包括管理员),便可在启用了分支保护的分支上合并拉取请求。

要查看您的拉取请求能否合并,请查看拉取请求的 Conversation(对话)选项卡底部的合并框。 更多信息请参阅“关于受保护分支”。

当分支受保护时:

  • 您无法删除或强制推送到该分支。
  • 如果对分支启用了必需状态检查,则在所有必需 CI 测试通过之前,无法将更改合并到分支。 更多信息请参阅“关于状态检查”。
  • 如果对分支启用了必需拉取请求审查,则在满足拉取请求审查策略中的所有要求之前,无法将更改合并到分支。 更多信息请参阅“合并拉取请求”。
  • 如果对分支启用了代码所有者的必需审查,并且拉取请求修改具有所有者的代码,则代码所有者必须批准拉取请求后才可合并。 更多信息请参阅“关于代码所有者”。
  • 如果对分支启用了必需提交签名,则无法将任何提交推送到未签名和验证的分支。 更多信息请参阅“关于提交签名验证”和“关于必需提交签名”。
  • If you use GitHub's conflict editor to fix conflicts for a pull request that you created from a protected branch, GitHub helps you to create an alternative branch for the pull request, so that your resolution of the conflicts can be merged. 更多信息请参阅“解决 GitHub 上的合并冲突”。

延伸阅读

此文档对您有帮助吗?

Privacy policy

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。