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