关于协作编码
当您在 GitHub 上与他人协作时,通常会在主项目的分支或 fork 中进行更改,然后将其提交为拉取请求。拉取请求显示原始代码与您更改之间的差异,并邀请仓库维护者将您的代码合并到项目中。
从他人那里获取对您拉取请求的反馈是软件开发过程中的重要环节。拉取请求审查能够改进您正在编写的特定代码,同时也会随时间提升您的编码和协作能力。有时,尤其是在您学习编码时,可能并不总有可请教的人。在这种情况下,您可以改为从 GitHub Copilot 获取反馈及其所有好处。
拉取请求是一个协作场所,您可以向他人展示您提议的更改并获取反馈。当您向 Copilot 请求审查时,您正在学习在与开发团队合作时使用的相同流程。唯一的区别是,您还将同时向人类同事请求审查。
注意
GitHub 网站上的 Copilot 代码审查是高级功能,可通过 Copilot Pro、Copilot Pro+、Copilot Business 和 Copilot Enterprise 计划获得。有关使用 Copilot 代码审查如何影响配额的更多信息,请参阅 关于 GitHub Copilot 代码审查。如果您是学生,可能可以免费使用 Copilot 的高级功能,请参阅 作为学生免费使用 GitHub Copilot。
1. 创建练习仓库
在本练习中,您将使用一个已有代码的示例仓库。该示例仓库是 new2code/grid-toy,一个展示颜色变化方格网格的简易 HTML 和 JavaScript 项目。这是一个 GitHub Pages 站点,您可以在 https://new2code.github.io/grid-toy 查看原始版本。
通过创建 `grid-toy` 仓库的副本开始。
- 导航至 new repository page。点击此链接后会预先选择 `new2code` 账户下的模板。
- 在 “Owner(所有者)” 下,选择您的用户账户。
- 在 “Repository name(仓库名称)” 字段中,输入 “grid-toy”。
- 点击 创建仓库。
2. 进行更改
接下来,您将对 JavaScript 文件进行更改。
-
在您的新仓库中,在文件列表中点击
script.js。 -
要编辑 JavaScript 文件,请在右上角点击.
-
在第 25 行,添加以下代码
JavaScript if (Math.random() < INVERT_PROBABILITY) { cell.classes.add("black"); }if (Math.random() < INVERT_PROBABILITY) { cell.classes.add("black"); }此更改将在页面加载时随机将部分网格方块设为黑色。这里特意留下了一个错误以触发 GitHub Copilot 的反馈:正确的属性应为
.classList,而不是.classes。GitHub Copilot 将帮助我们修复此问题。 -
要提交更改,请在右上角点击 Commit changes...
-
在 “Commit message(提交信息)” 字段中,输入类似 “Randomly set squares on load” 的内容。
-
选择 Create a new branch for this commit and start a pull request。
-
点击 Propose changes。
3. 创建拉取请求并请求审查
现在完成拉取请求并请求审查。
- 为您的拉取请求输入标题,必要时添加描述。
- 点击 Reviewers。
- 如果 Copilot 出现在建议列表中,点击 “Copilot”。
- 如果没有,开始输入 “Copilot”,然后点击结果。
- 点击 创建拉取请求。
您将进入新建的拉取请求页面。
4. 应用建议更改
几分钟内,GitHub Copilot 将审查您的拉取请求,生成摘要,并针对发现的问题提供建议更改。
-
等待来自 GitHub Copilot 的审查出现。
-
其中一个建议应通过将
.classes改为.classList来纠正前面有意留下的错误。在建议更改下方,点击 Commit suggestion。
-
点击 Commit changes。
-
GitHub Copilot 可能还发现了其他改进并留下了附加评论。如果您理解这些建议的更改,也可以一起应用。
5. 合并
一旦您对更改满意,就可以合并拉取请求。这会将您分支中的更改合并到仓库的默认分支(main)。
- 在页面底部,点击 Merge pull request。
- 如有需要,可更新提交信息。
- 按下 Confirm merge。
后续步骤
该项目可通过 GitHub Pages 发布。现在您已经完成了一些更改,可以将您自己的仓库版本发布以实际查看效果。参见 Configuring a publishing source for your GitHub Pages site。