私は早期に頻繁にチェックインするチームでプロジェクトに取り組んでいます。個々のチェックインは、変更を行う開発者(可能であればテストを含む)を満足させるために完了しますが、作業の方向性がわずかに変化し、以前のコミットを元に戻して別の方法で行う必要があります。または、後のコミットでスタブコードが記入されます。コードレビューに関連する変更を抽出します
コードレビューの時間が来ると、同じバグトラッキングID番号でタグ付けされた一連のコミットがあります。そのような変更のリストを簡単に取得できます。レビュー担当者が変更を1つずつ調べると、同じレビューの一部として後でコミットBによって取り消されたり変更されたコミットAがあることがあります。これにより、レビューをより困難にすることができます。
変更の間、1人の開発者しかファイルを処理していなかった場合、ファイルの元の状態とファイルの最終状態の間でdiffを実行するのは簡単です。この問題は、別の開発者が、同じファイル内で、または同じ機能内でさえ関連のない変更を行った場合に発生します。
このような状況にどう対処しますか?ファイルに一連のパッチを適用すると、最初のバージョンと最後のバージョンの差分を道徳的に同等にすることができますが、それらのパッチのサブセットのみを含むツールはありますか?
私はそれを考えると、最初の関連する変更の前からgitで一時的なブランチを作成し、レビューに関連する変更をチェリーで選ぶことができました。うまくいけば、解決しなければならない余りにも多くの紛争はないでしょう(もしあれば、そのロット全体を一度に見直すべきです)。他のアイデア?
詳細情報:これは、1回の変更で複数のファイルにアクセスする大きなレガシーシステムです。これらのファイルは大きすぎるほど重大であり、変更された可能性があることを示すことなく、最終製品をレビューするには大きすぎます。
ありがとう、これは私たちの状況にとって最も確かなアプローチのようです。 –
[Jefromi](http://stackoverflow.com/a/3512492/165495) - 次のコマンドは、単一の著者からの変更をブランチに抽出します: 'git cherry-pick $(git log --pretty =%H --author = Alice first_commit..second_commit) ' - – Casebash