今日の英語表現 12/30 · ステップ: PRの説明。 例文はすべてこの記事のために作成したものです。実際のストレージのPRをそのまま持ってきたものではなく、ブランチと番号は例です。
目次
概要
| 表現 | Rebased onto main (to resolve conflicts). |
| 意味 | mainの最新コミット上にブランチを再度積み直しました(コンフリクトを解消するため)。 |
| 使用する場面 | PRのコメント、レビューの返信、レビュワーからの要求 |
| 丁寧さ | 中立。作業報告です。 |
1. 意味とニュアンス
rebaseはGitのコマンド名がそのまま動詞になった表現です。自分のブランチのコミットを切り離し、 他のコミットの上に再度積み直す 作業です。そのため前置詞は「〜の上に」という意味の onto を使います。rebase onto mainは「mainの末尾の上に再度積み直す」となります。日常ではrebase on mainと使うこともありますが、Gitのドキュメントでも --onto というオプション名を使っているように、ontoの方がより正確なイメージを伝えます。
レビュワーがこの表現を知りたい理由は、rebaseによって コミットハッシュが変わる ためです。rebaseしたブランチをアップロードするには強制プッシュ(force push)が必要となり、GitHubのPR画面では以前に見えていたコミットが消えたかのように表示されます。そのため、「コードの内容はそのままでベースのみを最新に変更した」と一言知らせることで、レビュワーの時間を節約できます。
mergeとの違いも覚えておきましょう。merge main into my branchはmainを自分のブランチに統合するマージコミットを作成します。rebaseはマージコミットを作らず、履歴を一本に維持します。どちらを好むかはリポジトリごとに異なります。CloudNativePGのコントリビューションガイドでは、GitHubをマージコミットのない線形履歴(linear development)に設定していると明記されています。このようなリポジトリではrebaseが基本となります。
強制プッシュを行う際は、 git push --force-with-lease を使う習慣をつけると良いでしょう。リモートブランチが自分が最後に確認した状態と異なるとプッシュが拒否されるため、メンテナーが自分のブランチに追加したコミットを誤って消してしまうことを防げます。
2. 例文
状況1: コンフリクトを解決した後
Rebased onto main to resolve the conflict in
go.mod. No other changes.
No other changesを添えることで、レビュワーは再確認すべき箇所がないことが分かります。
状況2: レビュワーからの要求がある場合
Could you rebase onto the latest main? #3300 changed the same function and CI is failing on this branch.
状況3: rebaseと修正が混ざっている場合
Rebased onto main and addressed the review comments. The only new change is in
validate.go; everything else is from the rebase.
rebaseによって変更された部分と、直接修正した部分を分けて伝えることで、レビュワーは確認すべき箇所だけを確認できます。
3. 似た表現との違い
- Merged main into this branch. マージコミットを作成したという意味です。線形履歴を求めるリポジトリでは、改めてrebaseするよう求められることがあります。
- Force-pushed. 強制プッシュしたという報告です。Sorry for the force-pushのように、レビュー中の強制プッシュを事前に謝罪することもあります。
- Synced with upstream. フォーク元のリポジトリと同期したという広い意味を表します。rebaseなのかmergeなのかは分かりません。
4. 韓国人がよく犯す間違い
- I updated the branch to latest. 何が最新なのか、rebaseなのかmergeなのかが分かりません。
- 修正した文: Rebased onto the latest main.
- I did rebase. doを付けず、rebase自体を動詞として使います。
- 修正した文: I've rebased the branch.
- Rebased to main. 間違いとは言い切れませんが、ontoの方が動作をより正確に表現できます。
- 修正した文: Rebased onto main.
5. 一行練習
次の韓国語の文をPRのコメントとして書き換えてください。
mainの最新にリベースしてコンフリクトを解決しました。コードの変更はありません。
模範解答
Rebased onto the latest main to resolve conflicts. No code changes.
conflictsは複数ファイルのコンフリクトをまとめて複数形にします。1つだけであればthe conflictと書きます。
Titiの一言 コミットハッシュが変わる変更は一言伝えておきましょう。レビュワーが最初から読み直す必要がなくなります。
参考
- Git 문서, git-rebase: https://git-scm.com/docs/git-rebase
- Git 문서, git-push(
--force-with-lease): https://git-scm.com/docs/git-push - CloudNativePG, Contributing to the source code: https://github.com/cloudnative-pg/cloudnative-pg/blob/main/contribute/README.md