はじめに
以前所属していたプロジェクトにおけるコードレビューの流れ(Gitコマンドの手順)をメモ。
コードレビュー依頼時のGitコマンド
$ git checkout feature/v0.9.1/bug-fix-no-250 $ git rebase develop $ git push -f
- コードレビューを依頼したいfeatureブランチにチェックアウト
- featureブランチ名は、基本的に
feature/[developブランチのバージョン番号]/bug-fix-no-[Redmineのチケット番号]
のルールで命名される(※) ※ featureブランチ名の例:feature/v0.9.1/bug-fix-no-250
- リベースを実施
git rebase develop
- featureブランチをGit rebaseした結果を強制的にリモートブランチに書き込む
git push -f
- Gitホスティングサービス(Gogsを使用)からdevelopブランチに向けてプルリクエストを作成
- レビューの結果、問題がなければプルリクエストがレビュー担当者によりマージされる
- プルリクエストをマージした後、レビュー担当者によりバージョン番号がインクリメントされ、developブランチにタグとして発行される
リベース
$ git rebase develop # コンフリクトした時(add コマンドの後に) $ git rebase --continue # リベースを中断したい時 $ git rebase --abort
developブランチからfeatureブランチを作成した後、developブランチ側で実施された変更をfeatureブランチ側に取り込む時にGit rebase を実施している
以前はGit rebaseでなく、featureブランチに対して、developブランチをマージすることによってfeatureブランチにdevelop側の変更を取り込んでいた
作業ツリーが見づらくなるという理由で、現在はマージによる変更取り込みでなく、リベースを実施している
通常のpushでリベース結果をリモートに書き込むとマージによるコミットが自動で実施され、コミットログが読みづらくなるため、
git push -f
を実施するgit rebase develop
後にコンフリクトが発生した場合は、コンフリクト解消後にgit add
→git rebase --continue
コマンドを実施する(リベースを中止する場合はgit rebase --abort
)