简介
GitHub 流程是一种轻量级、基于分支的工作流。GitHub 流程对所有人都有用,而不仅限于开发者。例如,在 GitHub,我们使用 GitHub 流程来管理我们的站点政策、文档和路线图。
先决条件
要遵循 GitHub 流程,您需要一个 GitHub 账户和一个仓库。有关如何创建账户的信息,请参阅在 GitHub 上创建账户。有关如何创建仓库的信息,请参阅仓库快速入门。有关如何找到已有仓库并进行贡献的信息,请参阅在 GitHub 上寻找开源贡献机会。
遵循 GitHub 流程
提示
您可以通过 GitHub 网页界面、命令行和GitHub CLI,或GitHub Desktop完成 GitHub 流程的所有步骤。有关连接到 GitHub 所能使用的工具的更多信息,请参阅连接到 GitHub。
创建分支
在仓库中创建一个分支。简短且具描述性的分支名称让协作者一眼就能看到正在进行的工作。例如,increase-test-timeout 或 add-code-of-conduct。有关更多信息,请参阅在仓库中创建和删除分支。
通过创建分支,您可以在不影响默认分支的情况下进行工作。此外,您还能让协作者有机会审阅您的工作。
进行更改
在您的分支上,对仓库进行任意所需的更改。有关更多信息,请参阅创建新文件、编辑文件、重命名文件、将文件移动到新位置,或删除仓库中的文件。
您的分支是进行更改的安全场所。如果出现错误,您可以恢复更改或推送额外的更改来修复错误。在您合并分支之前,您的更改不会出现在默认分支上。
将更改提交并推送到您的分支。为每次提交提供描述性信息,以帮助您和未来的贡献者了解该提交包含的更改。例如,fix typo 或 increase rate limit。
理想情况下,每个提交都包含一个独立、完整的更改。这使得在决定采用不同方案时能够轻松地回滚更改。例如,如果您想重命名变量并添加一些测试,请将变量重命名放在一次提交中,将测试放在另一提交中。之后,如果您想保留测试但回滚变量重命名,只需回滚包含变量重命名的那个提交。如果将变量重命名和测试放在同一次提交中,或将变量重命名分散到多个提交中,则回滚工作会更费力。
通过提交并推送更改,您将工作备份到远程存储。这意味着您可以在任何设备上访问工作,也意味着协作者可以看到您的工作、回答问题并提供建议或贡献。
持续在您的分支上进行、提交并推送更改,直至您准备好请求反馈。
提示
为每一组不相关的更改创建单独的分支。这使审阅者更容易提供反馈,也让您和未来的协作者更易理解、更易回滚或基于这些更改进行构建。此外,如果某一组更改出现延迟,其他更改不会受到影响。
创建拉取请求
创建拉取请求以请求协作者对您的更改提供反馈。拉取请求审查非常重要,以至于一些仓库要求在合并前必须获得批准的审查。如果您想在完成更改之前获得早期反馈或建议,可将拉取请求标记为草稿。有关更多信息,请参阅创建拉取请求。
创建拉取请求时,包含对更改的概要以及它们解决的问题。您可以加入图片、链接和表格来帮助传达信息。如果您的拉取请求关联了某个议题,请链接该议题,以便议题的相关方了解拉取请求,反之亦然。如果使用关键字进行链接,拉取请求合并后议题会自动关闭。有关更多信息,请参阅基础写作与格式语法和将拉取请求链接到议题。
除了填写拉取请求的正文外,您还可以在拉取请求的特定行上添加评论,以明确指出给审阅者的注意点。
您的仓库可能已配置为在创建拉取请求时自动请求特定团队或用户的审查。您也可以手动 @提及 或请求特定人员或团队的审查。
如果您的仓库为拉取请求配置了检查,您将在拉取请求上看到任何失败的检查。这有助于在合并分支前捕获错误。有关更多信息,请参阅关于状态检查。
处理审查评论
审阅者应留下问题、评论和建议。审阅者可以对整个拉取请求发表评论,或对特定行或文件添加评论。您和审阅者可以插入图片或代码建议以澄清评论。有关更多信息,请参阅审阅拉取请求中的更改。
您可以继续提交并推送更改以响应审阅。您的拉取请求会自动更新。
合并拉取请求
一旦拉取请求获批,合并该拉取请求。这将自动合并您的分支,使更改出现在默认分支上。GitHub 会保留拉取请求中的评论和提交历史,以帮助未来的贡献者了解您的更改。有关更多信息,请参阅合并拉取请求。
GitHub 会提示您的拉取请求是否存在必须在合并前解决的冲突。有关更多信息,请参阅处理合并冲突。
分支保护设置可能会阻止合并,如果您的拉取请求未满足某些要求。例如,需要一定数量的批准审查或特定团队的批准审查。有关更多信息,请参阅关于受保护分支。
删除分支
合并拉取请求后,删除您的分支。这表示该分支上的工作已完成,并防止您或他人意外使用旧分支。有关更多信息,请参阅在拉取请求中删除和恢复分支。
无需担心信息丢失。您的拉取请求和提交历史不会被删除。如有需要,您随时可以恢复已删除的分支或回滚拉取请求。