本指南说明了如何将您的投稿提交至 Fuchsia 项目的定义。
Fuchsia 通过以下方式管理 Git 提交和代码审核: Gerrit 的网页界面。上传提交时 这就称为一次更改。
如需向 Fuchsia 贡献更改,请按以下步骤操作:
- 前提条件。
- 在 Gerrit 中创建更改。
- 申请代码审核。
- 跟踪代码审核。
- 提交更改。
1. 前提条件
在开始之前,您需要:
签署 Google 内容许可协议
请执行以下操作:
- 前往 Google Developers 的 贡献者许可协议 页面。
- 代表仅限您自己或您的雇主签署协议。
生成 Cookie
请执行以下操作:
- 登录 Gerrit。
- 前往 https://fuchsia.googlesource.com.
- 点击页面顶部的生成密码。
- 复制生成的代码,并在工作站的终端中运行。
2. 在 Gerrit 中创建更改
如需在 Gerrit 中创建更改,请执行以下操作:
转到您的 Fuchsia 目录,例如:
cd ~/fuchsia
创建新分支:
git checkout -b <branch_name>
在新分支中创建或修改文件。
添加更新后的文件:
git add <files>
提交更新后的文件并写入提交消息:
git commit
将提交内容上传到 Gerrit:
git push origin HEAD:refs/for/main
如需详细了解如何上传更改,请参阅 Gerrit 文档。
3. 申请代码审核
创建更改后,如需请求代码审核,请执行以下操作:
- 前往 Fuchsia Gerrit 信息中心。
- 点击您的更改(显示在发出的审核部分中)。
- 点击添加审核人员。
通过电子邮件地址添加审核者。
您可以参考
OWNERS
文件,该文件位于 进行更改,或在某个父项中进行更改, 审核者对您的更改进行审核。如需了解关于 Fuchsia 的更多信息 OWNERS,请参阅 OWNERS。点击发送。
4. 跟踪代码审核
如需跟踪代码审核的进度,请使用 Gerrit 的网页界面。 (要详细了解如何使用 Gerrit 代码审核工具,请参阅 查看界面。)
在您针对更改申请代码审核后,审核者可以进行评分 进行更改。审核者可以为您的更改添加标签 得分为 -2、-1、0、+1 或 +2。(如需详细了解 审核标签定义,请参阅 Gerrit 代码审核 - 审核标签)。 您需要提供代码审核标签 +2 才能提交更改。 只有目录所有者才能应用代码审核标签 +2 得分。
如果您需要在审核期间更新更改,请参阅 创建并上传补丁(或 解决合并冲突)。
将评论标为已解决
审核者可能会留下评论来描述 您需要先更新代码,然后他们才能批准您所做的更改。 一般情况下,只有在出现以下情况时,才需要选中评论旁的已解决复选框 您确定审核人会认为您的更新内容是可接受的。如果 但不确定审核人员是否会同意您的更新, 请勿选中已解决复选框。
5. 提交更改
在代码库所有者应用
为您的更改添加代码审核标签 +2。提交更改后,相应更改
提交到提交队列 (CQ)。提交队列会验证并
将更改合并到 main
分支。
只有具有提交权限的贡献者可以直接通过 Gerrit 接口中的接口。普通成员需要请求提交者 为其提交代码
附录
创建并上传补丁
创建变更后,如需为变更上传补丁,请执行以下操作:
- 在同一分支中创建或修改文件。
添加更新后的文件:
git add <updated_files>
使用
--amend
选项将补丁添加到同一提交中:git commit --amend
将补丁上传到 Gerrit:
git push origin HEAD:refs/for/main
解决合并冲突
当 Gerrit 警告您更改中有合并冲突时,请执行以下操作:
从
origin/main
执行 rebase 操作,这会显示导致合并的文件 冲突:git rebase origin/main
修改这些文件以解决冲突并添加更新的文件:
git add <files_with_resolved_conflicts>
完成 rebase 操作:
git rebase --continue
使用
--amend
选项提交更新后的文件:git commit --amend
将补丁上传到 Gerrit:
git push origin HEAD:refs/for/main
删除本地分支
提交更改后,您可以删除本地分支:
git branch -d <branch_name>
撰写变更消息
编写更改消息时,请遵循提交消息样式 指南。
管理跨多个代码库的更改
如需了解如何管理跨不同代码库(花瓣)的更改, 请参阅以下页面:
如需了解详情,请参阅源代码布局 有关 Fuchsia 代码库结构的信息。