プルリクエストの作り方

EC-CUBEのプルリクエストを送る場合の手順や考慮してもらいたいことについて説明します。

ソースコードをローカルにクローンする

ec-cubeのリポジトリを自身の Github アカウントに Fork し、ローカルに clone します。

パッケージのインストール

依存関係のあるパッケージをインストールします。

$ composer install

リモートの追加

ec-cubeのリポジトリをリモートに追加します。

リモートリポジトリ名を upstream としていますが、任意の名前で構いません。

$ git remote add upstream https://github.com/EC-CUBE/ec-cube.git

ローカルのmasterブランチの更新

eccubeは4.0ブランチがmasterブランチとなっています。

$ git pull upstream 4.0

開発用ブランチの作成

$ git checkout -b [任意のブランチ名] upstream/master

自身のGithubリポジトリの更新

作成したブランチで変更内容を commit 後、自身のGithubリポジトリに push を行います。

$ git push origin [任意のブランチ名]

プルリクエストを送る

自身のGithubリポジトリのページから、ec-cube へプルリクエストを作成します。

  • GitHubの自分のレポトリから、PullRequestする

プルリクエストのマージ条件

以下がクリアされる事で本体の「Master」にマージされます。

  1. 開発者・コミッターのレビュー

  2. 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のコミット後にプルリクエストを上げ、レビューされた内容を反映するために修正した場合、556677889667788990はまとめますが、445566778はまとめないでください。

マージ済みのコミットはまとめないでください。

コメントする