今日現在、新たに作成するすべてのGitHubリポジトリは、'master'ではなく'main'ブランチがデフォルトブランチになっている。この変更は、デフォルトブランチ名をこれまでの'master'から、プロジェクト毎のデフォルトブランチの呼び方にカスタマイズ可能にするという、アップストリームであるGitプロジェクトの変更のひとつを反映したものだ。今年初めにSoftware Frreedom Conservancyが発表した"Regarding Git and Branch Names"によると、
当ConservancyとGitプロジェクトはともに、その初期ブランチ名称である'master'が一部の人々にとって不快なものであることを認識しており、そのような用語の使用が彼らを傷つけるものであることに共感しています。
Gitの既存バージョンは任意のブランチ名で動作可能であり、新たなリポジトリをスクラッチから(git initコマンドを使用して)生成した時の最初のブランチとして歴史的に使用されている名称であることを除けば、'master'について特別な意味はありません。このために多くのプロジェクトが、開発の主要ラインにこの名称を使用しています。私たちはプロジェクトに対して、ブランチ名をより意味のある、より開放的なものに変更することを推奨およびサポートすると同時に、新しいプロジェクトに別のデフォルトをより簡単に使用できるよう、Gitに新たな機能を追加する予定です。
その第一歩として、リポジトリの新規作成時に最初のブランチ名として使用するデフォルトを、ユーザが指定可能にするメカニズムを追加します。さらに、プロジェクトガバナンスの一環として、新しいリポジトリに自動的に作成される最初のブランチ名を'master'以外に変更するためのコミュニティプロセスを開始しています。この変更は現在、メーリングリストで議論が続けられています。Gitコアに対する変更の慣例として、Gitユーザに対する影響を最小限にすると同時に、適当な非推奨期間を設定する予定です。
Gitバージョン2.28では、新しいコンフィギュレーションオプションとしてinit.defaultBranch
が導入されており、デフォルトブランチの名称の定義に使用することができる。既定値は'master'(後方互換性のため)だが、ユーザのデフォルトコンフィギュレーションあるいはシステム全体で設定することが可能だ。
プロジェクトではデフォルトブランチの推奨名として'main'の使用を決めているが、'master'と同じく、これは純粋に慣習的なものだ。これをサポートするため、GitHubでは、デフォルトブランチの名称変更をサポートすること、削除されたブランチから新しいデフォルトブランチ名への要求のリダイレクトを可能にすること、デフォルト以外の指定されたブランチからのGitHubページの生成をサポートすること、などを発表している。クライアントで設定する場合と同じ方法で、デフォルトブランチ名のカスタマイズが可能な、ユーザ/組織/企業レベルでの設定手段も用意する。
GitHubでは他にも、プルリクエストやシューのオープン時のターゲットをデフォルトブランチ名に自動的に変更する、などの拡張も計画されており、今年後半に実施される予定である。
オープンソースプロジェクトの中には、すでにデフォルトブランチを'main'に変更したものもある。例えばAppleのSwiftプログラミング言語では、サポートライブラリのswift-nioや、新たにリリースしたswift-systemで、デフォルトブランチ名として'main'を使うように切り替えた。PythonやRustなど他のプログラミング言語は、まだ変更されていない。
読者はGitHubのデフォルトブランチ名を変更する予定をお持ちだろうか?