LEXUES BLOG

レキサスブログ

Pull Requestに含めるコミットは意味のある単位にまとめよ!

本記事は、弊社noteでも掲載しています。

Pull Requestに含めるコミットは意味のある単位にまとめよ!

こんにちは
株式会社レキサスの開発エンジニアの新入社員アベルです。

7月からレキラボ(Lexues Laboratory)に参加しています。
スーパーエンジニアになるべく、日々勉強中です。

レキラボの概要については、こちらの記事をご参照ください。

オープン社内報はじめました〜スクラム開発によるレキラボの歩み〜

今回は、PR(プルリクエスト)のコミットについて話したいと思います。

私は、以前ローカルブランチで好き勝手にコミットしたものを、そのままリモートブランチにプッシュしていたのですが、スクラムマスターの小林さんから以下の指摘を受けました。

はい。その通りだと思います。すみませんでしたという感じです。

PRに含まれるコミットは最終的には、masterブランチに反映されます。
ということは、好き勝手にコミットすると、履歴が追いづらくなります。

他人と共有することを意識して、コミットを出す必要があります。

私は気持ちを改め、「これからは意味のあるコミットでPRを出すぞ!」
という意識で作業を再び取り組んだのですが 、、、

すごい難しい

コード修正するたびに「いまここでコミットしたほうがいいのかな」とか「このコメントでいいのかな」とか考えるようになり、開発の作業効率が落ちました

やはり、開発中は自分がわかりやすいようにコミットし、PR出す時に、相手が分かりやすいように綺麗にコミットをまとめたほうがいいなと思い、調査したところ、

ローカルブランチ内に
作業用ブランチとPR用ブランチを作り、
作業用ブランチをPR用ブランチにマージ(squashオプション)する
ことで解決することがわかりました。

流れは、以下の通りです

1. ローカルのdevelopブランチを最新のものにする
git pull origin develop

2. 作業用ブランチを作成、かつ、移動する
git checkout -b work/feature/XXX

3. 作業を開始し、自分の都合でコミットする
git add . git commit -m “XXXX機能を追加”

4. 作業用ブランチからdevelopブランチに移動する
git checkout develop

5. PR用ブランチを作成、かつ、移動する
git checkout -b feature/XXX

6. 作業用ブランチをPR用ブランチにマージする
git merge –squash work/feature/XXX

7. PR用のコメントを作成する
git commit

8. PR用ブランチをリモートブランチにプッシュする
git push origin <remote>

ポイントは、
6.「作業用ブランチをPR用ブランチにマージする」です。

マージする際にsquashオプションをつけることで、作業用ブランチのコミットのコメントをまとめるような形で、PR用のコミットを作成することができます。

これで、開発中は自分がわかりやすいようにコミットし、PR出す時に、相手が分かりやすいように綺麗にコミットをまとめることができるようになります。

きれいなコミットを残すことで、
履歴が追いやすいgitを作っていきましょう。

以上、新入社員アベルのnote投稿でした。

今後のレキラボ(Lexues Laboratory)、レキサスにご期待ください。

参考文献

この記事は以下の情報を参考にして執筆しました。

慣れてきたらコミットをまとめてPull Requestしよう(git merge –squash)

この記事のライター

みなさまからのご連絡をお待ちしております。

CONTACT US