TT Lab
ブログ

한국어 English 日本語 中文

はじめる
ブログ

ブログ

Could you squash your commits?: コミットをまとめてほしいという依頼への返答

今日の英語表現 21/30 · ステージ: レビューを受ける・返答する。 例文はすべてこの記事のために作られたものです。実際のりポジトリのコメントをそのまま持ってきたものではなく、コミットメッセージは例です。

目次

概要

表現 Could you squash your commits? / Squashed into one commit.
意味 コミットをまとめてもらえますか? / 1つのコミットにまとめました。
使う場面 レビュー終盤の依頼と返答
丁寧さ 中立。手順に関する依頼です

1. 意味とニュアンス

squashは「押しつぶす」という意味で、Gitでは 複数のコミットを1つにまとめることを指します。 git rebase -i でsquashやfixupを選択するか、 git commit --fixup と git rebase --autosquash を一緒に使ってまとめます。

なぜまとめてほしいのでしょうか?レビューを経ると、「fix typo」、「address review comments」、「wip」などのコミットがたまります。こうしたコミットはレビュー時には便利ですが、マージされた後には履歴を読みにくくしてしまいます。KubeVirtのレビュアーガイドでは、コミット1つ1つに意味がなければならないとし、「Fix reviewer comments」、「wip」、「addition」のようなコミットはまとめるよう依頼するよう案内しています。

いつまとめるかも重要です。Kubernetesのコントリビューションガイドでは、レビュー中は修正事項を新しいコミットとして積み上げ、まだスクワッシュしないように述べています。レビュアーが修正分を個別に確認できなければならないためです。スクワッシュするのは依頼を受けた時、通常はLGTMをもらう頃合いに行います。同ガイドでは、修正用コミットはまとめるが、1つの目的に向かいつつも互いに独立した変更はまとめないという基準も示しています。また、Prowを使用しているリポジトリでは tide/merge-method-squash ラベルを付与することでマージ時にボットにコミットをまとめさせることができ、これを行えば手動でまとめる場合とは異なりlgtmラベルが消えたりCIを再実行したりする必要がないと説明しています。

スクワッシュを行うとコミットハッシュが変わるため、強制プッシュが必要です。第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. 一行練習

作成者の立場で次の内容をコメントとして記述してください。

レビュー修正用コミットをまとめて1つのコミットにしました。強制プッシュしました。

模範解答

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

force-pushは動詞として使う際にもハイフンを入れることが多いです。強制プッシュしたことを知らせると、レビュアーは画面が変わった理由をすぐに理解できます。

Titiの一言。 レビュー中はコミットを積み上げ、終わるときにまとめます。順序を守ればレビュアーも履歴もすっきりします。

参考

ログインするといいねできます

コメント

まだコメントはありません。

ログインするとコメントできます