TT Lab
博客

한국어 English 日本語 中文

开始
博客

博客

Could you squash your commits?: 回应合并提交的请求

今日英语表达 21/30 · 阶段:接收评审与回复。 所有例句均为本文特意创作,并未直接引用实际仓库中的评论,提交信息也仅为示例。

目录

一目了然

表达 Could you squash your commits? / Squashed into one commit.
含义 能把提交合并一下吗? / 已合并为一个提交。
使用场景 评审收尾阶段的请求与回复
礼貌程度 中性。这是一项关于流程的请求

1. 含义与语境

squash 的意思是“压扁、挤压”,在 Git 中指 将多个提交合并为一个。通常可以通过在 git rebase -i 中选择 squash 或 fixup,或者配合使用 git commit --fixup 和 git rebase --autosquash 来进行合并。

为什么要请求合并呢?在经过评审的过程中,会堆积许多诸如 「fix typo」、「address review comments」 或 「wip」 的提交。这些提交在评审时很有用,但在合并后会让历史记录变得难以阅读。KubeVirt 的评审员指南指出,每一个提交都应当具有意义,并指导要求合并诸如 「Fix reviewer comments」、「wip」 和 「addition」 这样的提交。

何时进行合并同样重要。Kubernetes 贡献指南指出,在评审期间应当将修改作为新的提交上传,暂时不要进行压缩(squash)。因为评审员需要能够单独查看修改的部分。压缩通常在收到请求时、也就是差不多获得 LGTM 的时候进行。该指南还提出了标准:合并修改提交,但不要合并为了同一个目标却相互独立的变更。此外,在使用 Prow 的仓库中,可以通过挂上 tide/merge-method-squash 标签来让机器人在合并时自动压缩提交,指南解释说,与手动合并不同,这样做不会导致 lgtm 标签消失,也无需重新运行 CI。

由于压缩会改变提交哈希(commit hash),因此需要进行强制推送(force push)。我们使用第 12 篇中看过的 git push --force-with-lease 。

2. 例句

情境 1:维护者的请求

This looks good to merge. Could you squash the fixup commits into the main one before we merge?

情境 2:作者的回复

Done. Squashed into two commits: one for the API change and one for the generated files.

将生成的文件(generated files)保留为单独的提交是一种常见的惯例,旨在方便评审员只查看人工编写的变更。请遵循仓库的规则。

情境 3:作者主动询问时

Should I squash the commits now, or would you prefer to keep them separate until the review is done?

不同的评审员有不同的偏好,因此主动询问是最稳妥的做法。

3. 相似表达与区别

4. 韩国人常犯的错误

5. 行动练习

假设你是作者,请在评论中写下以下内容。

已将评审修改的提交合并为一个提交。已执行强制推送。

参考答案

I've squashed the review fixes into a single commit and force-pushed.

当 force-push 用作动词时,很多情况下也会带连字符。告知评审员已经强制推送,可以让对方立刻明白画面改变的原因。

Tt 的寄语。 评审期间累积提交,结束时进行压缩。遵守这个顺序,对评审员和历史记录都更加友好。

参考

登录后即可点赞

评论

还没有评论。

登录后即可发表评论