简介
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 将告诉您您的拉取请求是否存在必须在合并之前解决的冲突。有关更多信息,请参阅“解决合并冲突”。
如果您的拉取请求不满足某些要求,分支保护设置可能会阻止合并。例如,您需要一定数量的批准审查或特定团队的批准审查。有关更多信息,请参阅“关于受保护分支”。
删除您的分支
合并拉取请求后,删除您的分支。这表示分支上的工作已完成,并防止您或其他人意外使用旧分支。有关更多信息,请参阅“删除和恢复拉取请求中的分支”。
不用担心丢失信息。您的拉取请求和提交历史记录不会被删除。如果需要,您始终可以恢复已删除的分支或恢复拉取请求。