通常のgitとgithubを使用して、マスターブランチに取り組んでいる機能ブランチのプルリクエストを作成するだけで、コードレビューを行うことができます。git-flowでコードレビューを行うにはどうすればよいですか?「git flow feature finish`」のようなワークフローでは、コードレビューが実際に行われる場所と、git-flowまたはgitがそのレビューを容易にする方法について混乱しています。
通常のgitとgithubを使用して、マスターブランチに取り組んでいる機能ブランチのプルリクエストを作成するだけで、コードレビューを行うことができます。git-flowでコードレビューを行うにはどうすればよいですか?「git flow feature finish`」のようなワークフローでは、コードレビューが実際に行われる場所と、git-flowまたはgitがそのレビューを容易にする方法について混乱しています。
回答:
この問題に最近出くわしました。良いレベルのセマンティック(チームディスカッションで使用するのと同じレベルを使用する:「ブランチを作成してチェックアウトする」よりも「機能Aを開始する」)を使用するため、gitフローが本当に好きです。 gitは非常に「実装」レベルです(これも便利で便利ですが、違います)。
私たちが抱えている問題はgit feature finish
、ブランチを開発にマージする一方で、プルリクエストを送信し、チームの所有権を強調するためにコミッターではなくレビュアーによって(重要)マージされることです。
現在のソリューション:
これは、ブランチを自分で削除する必要があるというデメリット(git flow finishを行わないため)のプラクティスと一致しています。次のステップは、おそらくgitフローの一部を再実装し(主にgitコマンドのチェーンに関するものであるため)、これを考慮に入れます(マージのない仕上げの「クリーニング」部分を持つ)。
私が作業しているチームがこれに使用するプロセスは次のとおりです。
git flow feature start module_1
develop
、機能ブランチが比較されますmodule_1
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(または他のブランチスキーム)でうまく機能します。