そろそろ技術的なことを話さないとと思ったので、Gitのチェリーピックについて書きたいと思う。
Gitを始めたての頃は、基本コマンドを覚えるだけで手一杯なことが多い。
また、SVNから入った人にとってファイル管理の考え方が違うのでGitを受け入れる際に戸惑うだろう。
むしろ、いきなりGitから入った人の方が覚えが良いかもしれない。
そんなこんなで、ある程度Gitに慣れてきたとしよう。
慣れてきた場合は、Gitでコミットをする際にしっかりと修正のまとまり単位でコミットしておくと良い。
いくつか修正を一度に対応する場合に、一つのコミットに「しない」ということだ。
特に、共通ライブラリを修正する際などはコミットを分けておいた方が良い。
●developブランチ
↓※2つのブランチを切る
○develop-001
○develop-002
と対応が並行で進むとする。
○develop-001
・コミットA(共通ライブラリ修正)
・コミットB
○develop-002
・コミットC(共通ライブラリ修正)
・コミットD
というように、コミットAとコミットCは同じ対応なのにコミットが別だと、developにマージする際にコンフリクトが発生してしまう。
ましてや、コミットA・BとコミットC・Dを同じコミットにしてしまうのはさらに悪手だ。
○develop-001
・コミットA(共通ライブラリ修正)
・コミットB
↓※チェリーピックでコミットAをdevelop-002に付ける
○develop-002
・コミットA(共通ライブラリ修正)
・コミットD
とすれば、その後の運用がスムーズに進む。
develop-001とdevelop-002のコミットAのコミット番号が同じなので、どちらを先にdevelopにマージしてもコミットAに関してはコンフリクトが発生しない。
共同開発するにあたって、これはとても便利な仕組みと機能だ。
プログラムのスキルは当然大切だが、世の中のシステムは共同開発が多い以上、Gitとコミット・チェリーピックを上手に使ってうまく進めていきたい。
この点は、生成AIにはまかせるのは難しい、人の手による匠の部分になる。
生成AIは便利だが、技術研鑽したエンジニアの手が不要になることは今後ずっと無いだろう。