質問: GitHubでPull requestを作成して他のメンバーにコードレビューしてもらう際、静的なファイルや自動生成されたファイルを表示させないようにする方法はないでしょうか? 外部の有料CSSテンプレートなどを導入すると、自分で書いたわけではないCSS、JS、画像等が大量にpull requestに含まれる場合があります。 こうしたファイルは特別な理由がない限りコードレビューしてもらう必要はありません。 それよりも、自分自身が書いたコードを重点的にレビューしてもらうことの方が重要です。 しかし、普通にpull requestを作成すると、自分が書いたコードも外部から持ってきたファイルもすべてpull requestのdiffに含まれるため、第三者が見たときに非常に効率が悪くなります。 また、数が多すぎるとGitHubが白旗を揚げる場合もあります。(下記イメージ参照) !GitHubが白旗を揚げる例 こうした問題を避けるために、特定のディレクトリ以下は(diff上では)無視するとか、別々のpull requestにするとか、何かしらの回避策があれば教えていただきたいです。 よろしくお願いします。
回答: 差分を出したくない静的ファイルのみを commit した branch (A) とレビューしたいコードを commit した branch (B) を分け、GitHub 上で PullRequest を作る時に、base を A、compare を B に指定していました。 具体的な手順としては、以下のような感じです。 git-flow モデルで運用している前提とします。 1. git checkout develop 2. git checkout -b feature/A 3. git add staticfiles && git commit -m 'commit static files' 4. git push origin feature/A 5. git checkout -b feature/B 6. git add pleasereview && git commit -m 'please review this commit' 7. git push origin feature/B 8. GitHub 上で以下のように指定して PullRequest を作る。 !画像の説明をここに入力 develop へのマージ時は以下の点に、気をつけなければなりません。 必ず、feature/B を feature/A にマージした後、feature/A を develop にマージするということです。 diff が大量に出て GitHub 上でのレビュー運用がうまくいかないという点を解消するには、個人的には今のところベストプラクティスかなと考えています。