プルリクエストの作り方
EC-CUBEのプルリクエストを送る場合の手順や考慮してもらいたいことについて説明します。
ソースコードをローカルにクローンする
ec-cubeのリポジトリを自身の Github アカウントに Fork し、ローカルに clone します。
パッケージのインストール
依存関係のあるパッケージをインストールします。
$ composer install
リモートの追加
ec-cubeのリポジトリをリモートに追加します。
リモートリポジトリ名を upstream
としていますが、任意の名前で構いません。
$ git remote add upstream https://github.com/EC-CUBE/ec-cube.git
ローカルのmainブランチの更新
ec-cubeは4.2ブランチがmainブランチとなっています。
$ git pull upstream 4.2
開発用ブランチの作成
$ git checkout -b [任意のブランチ名] upstream/4.2
自身のGithubリポジトリの更新
作成したブランチで変更内容を commit 後、自身のGithubリポジトリに push を行います。
$ git push origin [任意のブランチ名]
プルリクエストを送る
自身のGithubリポジトリのページから、ec-cube へプルリクエストを作成します。
- GitHubの自分のレポトリから、PullRequestする
プルリクエストのマージ条件
以下がクリアされる事で本体の「Master」にマージされます。
-
開発者・コミッターのレビュー
-
CIのチェック
- Travis : ユニットテスト
- AppVeyor : ユニットテスト( Win環境 )
- Scritinizer : 静的コード解析
プルリクエストを送る際に行ってもらいたいこと
不要なコミットログはまとめてください。
対象はgit rebase
について把握している方ですので、必須ではありません。
以下のようなコミットを行った場合は、112233445
から334455667
はまとめてください。
$ git log --pretty=format:"%h - %an : %s"
334455667 - myself : 機能A修正
223344556 - myself : 機能A修正
112233445 - myself : 機能A追加
001122334 - other_user : 別ユーザーのコミット
git rebase
を実行し、まとめてください。
$ git rebase -i 001122334
pick 112233445 機能A追加
squash 223344556 機能A修正
squash 334455667 機能A修正
以下のようになったらプルリクエストを上げてください。
$ git log --pretty=format:"%h - %an : %s"
445566778 - myself : 機能A追加
001122334 - other_user : 別ユーザーのコミット
$ git push origin master
$ ...
ただし、コメントに対して修正を加えた場合は履歴がわかるようにするためにまとめすぎないようにしてください。
$ git log --pretty=format:"%h - %an : %s"
667788990 - myself : 修正に間違いがあったため修正
556677889 - myself : レビュー結果を反映
445566778 - myself : 機能A追加
001122334 - other_user : 別ユーザーのコミット
445566778
のコミット後にプルリクエストを上げ、レビューされた内容を反映するために修正した場合、556677889
と667788990
はまとめますが、445566778
はまとめないでください。
マージ済みのコミットはまとめないでください。