Skip to main content

关于分支

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

关于分支

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

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

也可以使用分支发布 GitHub Pages 网站。 有关详细信息,请参阅“关于 GitHub Pages”。

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

关于默认分支

在 your GitHub Enterprise Server instance和 GitHub Enterprise Server 上创建一个有内容的仓库时,将创建包含单一分支的仓库。 仓库中的第一个分支是默认分支。 默认分支是任何人访问您的仓库时 GitHub 显示的分支。 默认分支也是初始分支,当有人克隆存储库时,Git 会在本地检出该分支。 除非指定不同的分支,否则仓库中的默认分支是新拉取请求和代码提交的基础分支。

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

您可以更改现有仓库的默认分支。 有关详细信息,请参阅“更改默认分支”。

您可以为新仓库设置默认分支名称。 有关详细信息,请参阅“管理存储库的默认分支、“管理组织中存储库的默认分支名称”和“在企业中强制实施存储库管理策略”。

使用分支

你对你的工作感到满意后,可以提交拉取请求以将当前分支(头部分支)的更改合并到另一分支(基础分支) 。 有关详细信息,请参阅“关于拉取请求”。

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

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

在这里,有人从 main 分支创建了一个名为 feature1 的分支,而你已经从 feature1 创建了一个名为 feature2 的分支。 两个分支都有打开的拉取请求。 箭头指示每个拉取请求的当前基础分支。 此时,feature1feature2 的基础分支。 如果现在合并 feature2 的拉取请求,则 feature2 分支将合并到 feature1 中。

merge-pull-request-button

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

merge-pull-request-button

现在,当你合并 feature2 拉取请求时,该请求将合并到 main 分支中。

使用受保护分支

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

注意: 如果你是存储库管理员,则即使拉取请求不符合要求,也可在启用了分支保护的分支上合并拉取请求,除非分支保护设置为“包括管理员”。

若要查看是否可以合并拉取请求,可在拉取请求的“对话”选项卡底部的合并框中查看。有关详细信息,请参阅“关于受保护的分支”。

当分支受保护时:

  • 您无法删除或强制推送到该分支。
  • 如果对分支启用了必需状态检查,则在所有必需 CI 测试通过之前,无法将更改合并到分支。 有关详细信息,请参阅“关于状态检查”。
  • 如果对分支启用了必需拉取请求审查,则在满足拉取请求审查策略中的所有要求之前,无法将更改合并到分支。 有关详细信息,请参阅“合并拉取请求”。
  • 如果对分支启用了代码所有者的必需审查,并且拉取请求修改具有所有者的代码,则代码所有者必须批准拉取请求后才可合并。 有关详细信息,请参阅“关于代码所有者”。
  • 如果对分支启用了必需提交签名,则无法将任何提交推送到未签名和验证的分支。 有关详细信息,请参阅“关于提交签名验证”和“关于受保护的分支”。
  • 如果您使用 GitHub 的冲突编辑器来解决从受保护分支创建拉取请求的冲突,GitHub 可帮助您为拉取请求创建一个备用分支,以解决合并冲突。 有关详细信息,请参阅“解决 GitHub 上的合并冲突”。

延伸阅读