通常のgitおよびgithubを使用すると、masterブランチに取り組んでいる機能ブランチのプルリクエストを作成するだけで、コードレビューを実行できます。 git-flowでコードレビューを行うにはどうすればよいですか? 「git flow feature finish」のようなワークフローでは、コードレビューが実際にどこで行われるか、そしてgit-flowまたはgitがそのレビューをどのように促進できるかについて混乱しています。
最近、この正確な問題に遭遇しました。私たちはgitフローが非常に好きです。これは、適切なレベルのセマンティックを使用するため(チームディスカッションで使用するのと同じレベルを使用する:「ブランチを作成してチェックアウトする」よりも「機能Aを開始します」)、 gitは非常に「実装」レベルです(これも優れていて便利ですが、異なります)。
私たちが抱えている問題は、git feature finish
、ブランチを開発にマージするので、プルリクエストを送信し、(これは重要です)レビュー担当者がマージチームの所有権を強調するために、コミッターではありません。
現在のソリューション:
これは私たちの慣例と一貫しており、ブランチを自分で削除する必要があるという欠点があります(gitフローの終了を行わないため)。私たちの次のステップはおそらくこれを考慮に入れるために(主にgitコマンドのチェーンについて)gitフローの一部を再実装することです(マージのない仕上げの「クリーニング」部分があります)。
私が作業しているチームがこれを使用するプロセスは次のとおりです。
git flow feature start module_1
develop
と機能ブランチmodule_1
を比較して、GitHubでプルリクエストが開かれます。git flow feature finish module_1
develop
ブランチがGitHubにプッシュされます(これが発生すると、GitHubはプルリクエストを自動的にクローズ/マージ済みとしてマークします)通常、このプロセスはすべて元の作成者が行いますが、それは必須ではありません。私たちのチームの誰もが、いつでもこのプロセスに介入し、このプロセスを開始できます。彼らがしなければならないのは、機能ブランチをチェックアウトしてプロセスを続行することだけです。これまでにgit flow feature finish module_1
を実行すると、ローカル機能ブランチの贅沢が削除されますが、ブランチをチェックアウトした他のユーザーは、git branch -D feature/module_1
のようなものを使用する場合は手動でこれを実行する必要があります。
ホットフィックスについては、同様のアプローチを使用し、ホットフィックスを完了する前にGitHubでプルリクエストを作成します。
ここに別の提案があります。
コードレビューを行っている場合は、「公式」コードを含む中央リポジトリがあると想定します。開発者は、この中央リポジトリからプルおよびプッシュします。
Gerrit を使用すると、Gerrit自体が中央リポジトリになります(組み込みのSSHサーバーとHTTPサーバーがあり、ユーザーは基本的にはこれまでと同じように操作できます)。 Gerritを使用する場合、ワークフローは次のようになります。
中央リポジトリを使用する場合、他の開発者はステップ2の後に送信された変更を確認できます。Gerritはコードレビューワークフローを導入しているため、他の開発者はステップ5の後で送信された変更のみを確認できます。
Gerritは任意のブランチで行われた変更のレビューをサポートしているため、これはgit-flow(または他の任意のブランチスキーム)でうまく機能します。