中安拓也のブログ

プログラミングについて書くブログ

コードレビュー依頼時のGitコマンド

はじめに

以前所属していたプロジェクトにおけるコードレビューの流れ(Gitコマンドの手順)をメモ。

コードレビュー依頼時のGitコマンド

$ git checkout feature/v0.9.1/bug-fix-no-250
$ git rebase develop
$ git push -f
  1. コードレビューを依頼したいfeatureブランチにチェックアウト
  2. featureブランチ名は、基本的にfeature/[developブランチのバージョン番号]/bug-fix-no-[Redmineのチケット番号]のルールで命名される(※) ※ featureブランチ名の例: feature/v0.9.1/bug-fix-no-250
  3. リベースを実施git rebase develop
  4. featureブランチをGit rebaseした結果を強制的にリモートブランチに書き込むgit push -f
  5. Gitホスティングサービス(Gogsを使用)からdevelopブランチに向けてプルリクエストを作成
  6. レビューの結果、問題がなければプルリクエストがレビュー担当者によりマージされる
  7. プルリクエストをマージした後、レビュー担当者によりバージョン番号がインクリメントされ、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 addgit rebase --continueコマンドを実施する(リベースを中止する場合はgit rebase --abort)