测试发布 12/16
使用分支来隔离开发工作,而不会影响存储库中的其他分支。 每个存储库都有一个默认分支,并且可以有多个其他分支。 可以使用拉取请求将分支合并到另一个分支。
|
本文内容 |
|
|---|---|
关于分支
分支允许你在存储库的包含区域中开发功能、修复 bug 或安全地试验新想法。
始终从现有分支创建分支。 通常,可以从存储库默认分支创建新分支。 然后,可以独立于其他人对存储库所做的更改来使用此新分支。 为生成功能而创建的分支通常称为功能分支或主题分支。 有关详细信息,请参阅“在存储库中创建和删除分支”。
还可以使用分支发布GitHub Pages站点。 有关详细信息,请参阅“关于GitHub Pages”。
必须对存储库具有写入访问权限才能创建分支、打开拉取请求或删除和还原拉取请求中的分支。 有关详细信息,请参阅“对 GitHub 的访问权限”。
关于默认分支
在 GitHub 上创建包含内容的存储库时,GitHub 会创建具有单个分支的存储库。 存储库中的第一个分支是默认分支。 默认分支是 GitHub 在任何人访问存储库时显示的分支。 默认分支也是 Git 克隆存储库时在本地签出的初始分支。 除非指定其他分支,否则存储库中的默认分支是新拉取请求和代码提交的基础分支。
默认情况下,GitHub 会命名任何新存储库中的默认分支main。
可以更改现有存储库的默认分支。 有关详细信息,请参阅“更改默认分支”。
可以为新存储库设置默认分支的名称。 有关详细信息,请参阅“管理存储库的默认分支”、“管理组织中存储库的默认分支名称”和“在企业帐户中强制实施存储库管理策略”。
使用分支
对工作感到满意后,可以打开拉取请求,将当前分支中的更改 (头分支) 合并到另一个分支 (基本分支) 。 有关详细信息,请参阅“关于拉取请求。"
合并或关闭拉取请求后,可以删除头部分支,因为不再需要此请求。 您必须在存储库中具有写入访问权限才能删除分支。 无法删除与打开的拉取请求直接关联的分支。 有关详细信息,请参阅“删除和还原拉取请求中的分支”
如果在合并拉取请求后删除头部分支,GitHub 会在将已删除分支指定为其基础分支的同一存储库中检查任何打开的拉取请求。 GitHub 自动更新任何此类拉取请求,将其基础分支更改为合并的拉取请求基础分支。 下图说明了这一点。
在这里,有人从main分支创建了一个名为 feature1 的分支,然后你从 feature1 创建了一个名为 feature2 的分支。 这两个分支都有打开的拉取请求。 箭头指示每个拉取请求的当前基础分支。 此时,feature1 是 feature2 的基础分支。 如果现在合并了 feature2 的拉取请求,则 feature2 分支将合并到 feature1 中。
在下一个图中,有人已将 feature1 的拉取请求合并到 master 分支中,并删除了 feature1 分支。 因此,GitHub 自动重新定位了 feature2 的拉取请求,使其基础分支现已成为主数据库。
现在,合并 feature2 拉取请求时,它将合并到 main 分支中。
使用受保护的分支
存储库管理员可以在分支上启用保护。 如果正在使用受保护的分支,则无法删除或强制推送分支。 存储库管理员还可以启用其他几个受保护分支设置,以在合并分支之前强制实施各种工作流。
注意: 如果你是存储库管理员,则可以在启用了分支保护的分支上合并拉取请求,即使拉取请求不符合要求,除非分支保护已设置为“包括管理员”。
若要查看拉取请求是否可以合并,请查看拉取请求的“Conversation ”选项卡底部的合并框。 有关详细信息,请参阅“关于受保护的分支”。
当分支受到保护时:
-
无法删除分支或强制推送分支。
-
如果需要在分支上启用状态检查,则在所有必需的 CI 测试都通过之前,无法将更改合并到分支中。 有关详细信息,请参阅“关于状态检查”。
-
如果分支上启用了所需的拉取请求评审,则在满足拉取请求审查策略中的所有要求之前,无法将更改合并到分支中。 有关详细信息,请参阅“合并拉取请求”。
-
如果在分支上启用了来自代码所有者的必需评审,并且拉取请求修改了具有所有者的代码,则代码所有者必须先批准拉取请求,然后才能合并拉取请求。 有关详细信息,请参阅“关于代码所有者”。
-
如果在分支上启用了所需的提交签名,则无法将任何未签名和验证的提交推送到分支。 有关详细信息,请参阅“关于提交签名验证”和“关于受保护的分支”。
-
如果使用 GitHub 的冲突编辑器修复从受保护分支创建的拉取请求的冲突,GitHub 可帮助你为拉取请求创建备用分支,以便可以合并解决冲突。 有关详细信息,请参阅“解决 GitHub 上的合并冲突”。
进一步阅读
“关于拉取请求”
GitHub 术语表中的“Branch”
Git 文档中的“分支”