LoginSignup
1
0

More than 3 years have passed since last update.

【PR】を出す前にきれいにしよう

Last updated at Posted at 2019-07-11

主旨

広告記事ではありません。

プロジェクトの運営でgithubを使っている方も多いかなと思います。

修正内容をPR(プルリクエスト)をする際に、レビュアーが確認しやすいようにするために
変更内容を一まとめにして出したほうが、後々のレビューなどが楽になると感じました。

検索してみるとざくざく出てくるので、いろんな現場で課題になっているような気がします。

本稿では、git marge --squash で、PRする際に細かいコミットを一まとめにする例を扱います。

担当者レベルでは、細かくコミットした方が良い

失敗しやすいところでは、細かくセーブしてやり直せるようにしとけ。という考えは
個人レベルでは正しいと思います。

  1. イニシャルコミット
  2. 新しいビジネスロジックの追加
  3. 固定値の変更が必要になった
  4. 3のリバート(取り消し)
  5. 仕様変更に伴い、ビューを改修
  6. テストケースを追加
  7. 6で見つかった問題の改修

極端な話、個人のローカル開発環境ではこのくらい細かくても良いかも。
個人の範囲では。レビューする側にとっては面倒くさいことこの上ないけど。

レビューを行い、問題なければマージする段階では一まとめコミットの方が良い。
ましてや個人レベルのリバートがふくまれているようなものは・・・。

作業手順

仮に
ブランチは、以下の名前とします

  • stem:開発用ブランチの分岐元かつ、PRを出す対象(チーム内で共有)
  • edit:実装作業を行うブランチ
  • prrq:PR用にコミットをまとめるブランチ

同一リポジトリ内で作業するとします。

プライベートリポジトリに、最新のstem(分岐元)ブランチが存在すると仮定し

ブランチを用意する

作業用ブランチと、PR用ブランチを作る
# stemブランチを選択する
$ git checkout stem

# 作業用ブランチを作成
$ git checkout edit

# PRに出す用のブランチを作成
$ git checkout prrq

注:状態をそろえるために作業用ブランチと同時に、PR用のブランチも作成してください!

PR出す直前に、ブランチをまとめる

prrqに対しスクウォッシュ
# pr用ブランチに切り替えて
$ git checkout prrq

# merge --squash で、一まとめにする
$ git merge --squash edit

#一つのコミットとみなされていればOK

後はこの、 prrqブランチを使ってPRを出せばOK。

実務ではedit,prrqブランチは各メンバー用のリモートリポジトリにpushすることが多いと思いますが、
説明を簡単にするため同一リポジトリを使うと仮定しています。

余談

githubのPR機能には merge and squash いうものがあるので、それを使っても良い。
特に、開発用のブランチになら。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0