私の 10 人ほどのチームは、開発プロジェクトに GitHub を使用しています。develop
開発タスクを実行する機能ブランチを作成するメインブランチがあり、機能ブランチを にマージしdevelop
ます。プル リクエストを使用してコード レビューを行います。すべての標準的なもの。
ただし、気になることが 1 つあります。
開発者 A が という名前の機能ブランチを作成するとしmyFeature
ます。このブランチで、彼は 1 つのファイルに 1 行の変更を加えますLoop.java
。
その間、100 件の無関係なコミットがdevelop
、他の開発者によって他のブランチからマージされます。
develop
ここで、開発者 A は自分の変更をプッシュしてプル リクエストを発行する前に、自分の変更が最新のブランチで機能することを確認したいと考えています。したがって、彼は HEAD をdevelop
自分のブランチにマージします。
git checkout develop
git pull
git checkout myFeature
git merge develop
# testing and stuff
git push origin myFeature
最後のコマンド ( git merge develop
) は、常に新しいコミットになります。したがって、開発者 A が自分の変更をプッシュして のプル リクエストを発行すると、プル リクエストmyFeature
のレビュアーは 101myFeature
個のコミットがブランチに追加さLoop.java
れたことを確認しdevelop
ます。ここでは、このブランチで developerA によって実際に変更されたものを隠すためのノイズとしてのみ機能します。
レビュアーが、開発者の A の変更だけで何が変更されたのかを簡単に確認し、何らかの形で とのマージからのコミットを「隠す」方法はありdevelop
ますか? 特に、プル リクエスト ビューの [Files Changed] タブについて考えています。(「コミット」タブを使用して、すべてのコミットを 1 つずつ調べて、何が変更されたかを確認できることを認識していますが、コミットが多数ある場合、これは面倒な場合があります。変更されたファイル」タブ)
EDIT :git rebase develop
オプションとして提案されていますが、私たちの目的には適切ではないと思います。多くの場合、複数の開発者が に取り組んでmyFeature
いるため、リベースは履歴を書き換えるため、全員を台無しにする可能性があります。
編集 2 : @kan が親切に以下で指摘したように、GitHub は実際にはうまく動作しています: はい、プル リクエストの [コミット] タブにマージ コミットが表示されますが (これはまったく問題ありません)、[変更されたファイル] タブの下に表示されます。 、このフィーチャー ブランチで変更されたファイルのみ (マージからのものではない) が一覧表示されます。これはまさに私が探しているものです。