私のチームは10名ほどの開発プロジェクトにGitHubを使用しています。私たちにはメインのdevelop
ブランチがあり、開発ブランチを作成してから、開発ブランチをdevelop
にマージします。コードレビューを行うためにプルリクエストを使用します。すべての標準的なもの。ブランチを比較するときにGitHubでマージコミットを「隠す」方法はありますか?
しかし、1つのことが私を悩ましています。
開発者Aは、myFeature
という名前の機能ブランチを作成します。このブランチでは、彼は1つのファイル、例えばLoop.java
に1行の変更を加えます。
一方、他の開発者は、無関係のコミットを他のブランチからdevelop
にマージします。
開発者Aが変更をプッシュしてプルリクエストを発行する前に、彼は自分の変更が最新のdevelop
ブランチで動作するようにしたいと考えています。このように、彼は彼のブランチにdevelop
のHEADをマージします。
git checkout develop
git pull
git checkout myFeature
git merge develop
# testing and stuff
git push origin myFeature
最後のコマンド(git merge develop
)は、常に新しいコミットになります。したがって、開発者Aが変更をプッシュしてmyFeature
のプルリクエストを発行すると、プルリクエストのレビュー担当者はブランチmyFeature
に101コミットを追加して表示します.1つはLoop.java
に変更され、もう1つは無関係であり、 develop
に統合されました。ここで彼らは、この支店のdeveloperAによって実際に変更されたものを隠すための騒音としてのみ役立ちます。
レビュー者が開発者のA変更によって何が変更されたかを簡単に知る方法はありますか?develop
を使用してマージのコミットを何らかの形で隠すか?私は特に、プルリクエストビューの "ファイル変更"タブについて考えています。 (私は「コミット」タブを使用して、何が変更されたかを見るために1つ1つずつコミットすることができますが、コミットがたくさんあると面倒です。 "ファイルが変更されました"タブ)
編集:git rebase develop
がオプションとして提案されていますが、私たちの目的には適切ではないと思います。しばしば、複数の開発者がmyFeature
に取り組んでいるので、rebaseは履歴を書き換えるので誰もが邪魔する可能性があります。
EDIT 2:はい、それはマージが(完全に罰金です)プル要求のタブを「コミット」にコミット表示されますが、下:@kanが親切に下記の指摘したように、GitHubには、実際にうまく動作しています[ファイル変更]タブには、この機能ブランチで変更されたファイル(マージからのものではなく)のみが一覧表示されます。これはまさに私が探しているものです。
Aの 'myFeature'ブランチが' develop'から分岐していて、 'develop'の最新の変更をマージした場合、GitHubに何百もの追加コミットが現れるはずはないと思います。そのブランチに固有のものです。 Aは間違ったブランチにプルリクエストをしていますか?開発するのではなく「マスター」にしますか? –
@ColdHawaiian:いいえ、Aは '開発する 'から分岐し、'開発する 'をマージし、'開発する 'に合併するように要求します。だから、私も混乱していた。 – stepthom
もう1つの可能性は、Aの開発履歴のバージョンが既に変更されていることです(つまり、コミットシャーは対応するコミットで異なります)。おそらくAのコミットは 'rebase'、' cherry-pick'、 'commit --amend'で書き直されていますか?コマンドラインからGitを使うか、GitHub for WindowsのようなGUIを使っていますか? GitHub for Windowsは暗黙のうちにリベースすることで奇妙なことをする。 –