Git の初期ブランチ名について

2026年末頃にリリースが予定されている Git 3.0 では、初期ブランチ名が master から main に変更されることになっています。この変更について、さきラボでは「些か問題があるのではないか」と考えています。

命名という技術

ソフトウェア開発における「命名」は、単に名前をつけることではありません。名前は、人間の認知と判断の根拠になります。変数名、関数名、ブランチ名などの名前には「それを見た人の考え方を左右する影響力」があります。

さきラボが得意とする制御の領域では、命名の誤りは誤動作に直結します。例えば、工場で保全の人が PLC のラダーを調整することになった時、運転条件の認識が間違っていたらどうなるでしょうか。最悪の場合、それは人命に関わります。

Git のブランチ名にも、似たような側面があります。現代のソフトウェア開発において、Git のブランチは、ビルド、テスト、デプロイのパイプラインに直結しています。例えば CI 環境を再構築する時に、ブランチの役割を取り違えた結果、意図しないコードがリリースされてしまうというのは、普通にあり得る話です。

main が悪いのではない

main という名前に問題がある、という話ではありません。問題の本質は、この変更の背景にあります。

2020年、GitHub は BLM 運動を背景に、新規リポジトリのデフォルトブランチを master から main に変更しました。これはビジネス上の決断であり、それ自体は GitHub の自由です。

一方で Git は、2.28 で init.defaultBranch オプションを実装しました。ユーザーが自分で初期ブランチ名を設定できるようにする対応です。これは技術的に適切な対応でした。Git が開発された 2005年 当時と比べて、今のソフトウェア開発は複雑化しています。初期ブランチの役割は、開発手法や方針によって異なっています。init.defaultBranch オプションは、そんな開発の現実に Git が対応する、適切な実装でした。

ところが、Git 3.0 ではさらに踏み込んで、Git の初期ブランチ名が main に変更されるというのです。

何が問題なのか

Git の歴史と、ソフトウェア開発の現状から、Git の初期ブランチ名を見直したという話なら問題はありませんでした。しかし、現実に起きたことは master から main への変更です。

この動きは、Git という「オープンソースを代表するようなコミュニティ」が技術的に適切な命名を放棄して、GitHub とそれに類する「ビジネスの門下に下った」ものと見ることができます。実際、新しいブランチ名には適切な名前も提案されていましたが、それらは議論どころか、殆ど話題にもなっていません。

適切な命名

前提として、現在のソフトウェア開発において、初期ブランチの扱いを固定にすることは困難です。そのため、初期ブランチ名は「未定義」であることが望ましいと考えられます。そもそも Git の初期ブランチ名に特別な意味はなく、変更も簡単です。ブランチ名を決めるのは、ブランチの扱いが決まってからでも問題ありません。

未定義を表す具体的な例としては base default noname などが挙げられます。これらの案が出ている中で、殆ど議論もなく main が選ばれるというのは、技術者ではない人から見ても少し変だと感じられるのではないでしょうか。

油断が招く重大事故

危険が認識されていると、事故は起きにくくなります。おおよそ事故というものは、事故なんて起きないと思われているところで起きるものです。

スペースシャトル・チャレンジャー号の爆発事故も、三菱自動車のハブ不良が横浜市の母子を死傷させた事故も、JCO 東海事業所の臨界事故も、重大な事故であればあるほど「そんなことになるとは思わなかった」という認識が背景にあります。

重大事故に限らず、技術者が技術的な正当性を強く主張していたら回避できたはずの事故というのは、枚挙に暇がありません。しかし、現実には多くの技術者が、こんなことを言っています。

  • 用語が違うといっても、そういう要望なんだから、いいじゃないか。
  • どうせ理解されないんだから、正しくなくてもいいじゃないか。
  • ブランチ名なんて、そんな細かいこと、気にしなくてもいいじゃないか。

技術的な正当性なんて主張しなくても、それで「重大な事故が起きるわけでもないし」と言うわけです。そして残念なことに、そういう「技術的な正当性を気にしない人」の方が、巷では高く評価されていたりします。

さきラボにおける安全への取り組み

さきラボでは、Git のブランチ名は「リリース作業に関連する可能性がある」部分であり、適切な命名が必要な部分であると考えています。

master をやめよう、main をやめようという話ではありません。

私たちには、技術者としての倫理があります。私たちのすべきことは、言葉狩りではなく、技術的に適切な「命名」をすることです。

さきラボの方針

さきラボでは、GitHub を利用しています。BLM 運動の騒ぎに乗じた GitHub の PR 手法には眉をひそめるところですが、そのビジネスに文句はありません。GitHub が「メインブランチ」を定義して、初期リポジトリのブランチ名を main とすることについては、全く問題ないと考えています。

2026年現在、Git のブランチ名に関するさきラボの方針は以下のようになっています。

  • GitHub の流儀で開発するなら main
  • 過去の資産を引き継ぐなら master
  • 開発体制や手法を決める前なら basenoname

Git のブランチ名は、簡単に変更することができます。ブランチ名を変更しても、タグやコミットには影響がありません。

  • 初期ブランチ名を noname に設定するなら git config --global init.defaultBranch noname
  • noname ブランチを main にするなら git branch -m noname main

技術的に何をどう扱うのが正当だと言えるのか。技術に関わることに広く関心を持ち、よく考えて、適切に対応するのが技術者のあるべき姿だというのが、さきラボの考え方です。

この記事の投稿者

崎 洋佑
崎 洋佑プログラマーもどき
さきラボの代表取締役。自称プログラマーもどき。
開発でよく使う言語は日本語。
IT技術よりも人が好きな、天然物のエンジニアです。