【ゼロから始めるFlutter×GitHub入門】第3回:個人開発でもブランチを切るべき?「壊さない」開発スタイル

この記事、実は旅の宿から書いています。旅先でもノートパソコンを開いて手を動かしていると、いつもと違う場所だからか、意外と素直に「なるほど」と腑に落ちる瞬間があります。

今回のテーマは「ブランチ」です。一人で開発していると「ブランチなんて、チーム開発の人が使うものでは?」と思いがちですが、実はそうでもありません。

目次

main に直接プッシュして壊れる問題

前回までの流れだと、main ブランチに向かって直接 git add → git commit → git push を繰り返す形になります。慣れないうちは、これで十分動きます。

ただ、新しい画面を作っている途中で「あ、今日はここまでにしよう」と一旦区切りたいのに、中途半端な状態のコードが main に残ってしまう、ということが起こりがちです。個人開発でも、main はいつでも「今すぐ動く状態」にしておきたいところです。

そこで登場するのが、作業用の場所を分ける「ブランチ」という考え方です。

「本番用(main)」と「作業用(feature/xxx)」を分けるメリット

イメージとしては、main を「完成品を並べる棚」、ブランチを「作業台」だと考えるとわかりやすいです。

  • main:常にきれいな状態を保つ、完成した機能だけを置く場所
  • feature/xxx:新しい機能を作っている最中の、散らかっていてもいい作業スペース

作業台(ブランチ)でどれだけ試行錯誤しても、棚(main)は汚れません。うまくいかなければ、そのブランチごと諦めて作り直すこともできます。

実際の手順:ブランチ作成 → 変更 → プッシュ

git switch -c feature/add-map-screen

これで feature/add-map-screen という作業用ブランチができ、そこに切り替わります。

あとはいつも通り、変更を加えて記録していきます。

git add .
git commit -m "add map screen UI"
git push -u origin feature/add-map-screen

main には影響を与えず、feature/add-map-screen という別の場所に記録が積み重なっていきます。

GitHub上で「Pull Request(PR)」を作ってみる

作業が一区切りついたら、GitHub上でこのブランチを main に取り込むための「Pull Request(PR)」を作成します。

一人開発だと「レビューしてくれる人もいないのに、PRを作る意味あるの?」と思うかもしれません。私も最初はそう思っていました。ただ実際にやってみると、

  • 変更内容が一覧で見えるので、「今回何を変えたか」を自分自身で見直せる
  • PRの説明欄に「なぜこの変更をしたか」を書く習慣がつく
  • あとから「あの機能、いつ・なぜ追加したんだっけ」を振り返りやすい

という、自分用の記録・振り返りツールとしての価値がありました。マージするタイミングも自分で決められるので、「もう少し寝かせてから取り込もう」という判断もしやすくなります。

やらかしレスキュー策:違うブランチで作業してしまった

main にいるつもりで作業していたら、実は昨日作った別のブランチのままだった——これもよくある事故です。

まず、今どのブランチにいるかは、いつでもこれで確認できます。

git branch

アスタリスク(*)が付いているのが現在のブランチです。もし違うブランチで作業してしまっていても、コミットする前であれば慌てなくて大丈夫です。

git switch main

で本来のブランチに戻り、必要であれば作業を仕切り直せます。すでにコミットしてしまった後の場合は、変更を正しいブランチに持っていく方法もありますが、それはまた別の回で扱えたらと思います。

次回予告

次回は、開発者がいちばんヒヤッとする「APIキーや秘密鍵の管理術」を扱います。うっかりプッシュしてしまった時の緊急対処法も含めて、事故を防ぐための回にする予定です。

旅先の空気を吸いながら書いていると、旅と開発が地続きになっているような不思議な感覚があります。次回もよろしくお願いします。

目次