Gitに慣れていない人に「commitを分けるといいことあるよ」と伝える

最近Git操作についてレクチャーする機会が何度かあった。 そのとき「commitは分けましょう、というのはよく言われているけど、どうしてそうするべきなのかよく分からない」と言われた。

確かに言われてみると、Git操作に慣れていない段階だとcommitが大きな単位になってしまう。 自分も最初は作業に熱中していたら変更箇所が大量になる → よく分からないので全部commitという感じだった。

この状態でcommitを分けてもらうには「あなたにもメリットがありますよ」を伝えると良い。 具体的にはrevert・cherry-pickするときに困らないよという話をする。

「特定の変更だけ打ち消したい」「過去の変更を一部だけ取り入れたい」ときがある。 その際commitが意味のある単位でまとまっていないと、余計な変更まで入ってきて大変だよね、と伝える。

commitが分かれているとcherry-pickするときに色々な変更が取り込まれてしまうことを説明した例
commitが分かれていないと変更AもBもCもcherry-pickされてしまう

特にcherry-pickは効果を感じてもらいやすいのでおすすめ。「試しに実装してうまくできた箇所だけ取り込む、とかできるよ」と伝えると刺さりやすい。 実際に操作してもらって「便利〜!」と体感してもらうと良い。

commitが分かれているとcherry-pickするときに特定の変更のみ取り込めることを説明した例
commitが分かれていれば変更Aだけcherry-pickできる

複数人がこれで納得してくれたので、Git操作に慣れていない人にはかなり良い方法なんじゃないかと思った。

参考URL

commit粒度について

Git操作を説明するときによく共有するもの

サル先生のGit入門とマンガでわかるGitにはとてもお世話になっています。