master と main、どちらを使うべきか 〜 Gitのブランチ名から学ぶ「古い記事」と「現在の標準」の見分け方 〜

広告

Gitを教えていると、意外なところで学びになる場面があります。

先日、チーム開発の評価準備をしていたときのことです。生徒の皆さんが作成したGitHubのリポジトリを確認していました。

そこで、ある生徒さんのリポジトリを見て、ふと気づいたことがありました。

実は、私の想定と違っていた

私は、初期ブランチは当然 main になっていると思っていました。

ところが、その生徒さんのリポジトリでは、ブランチ名が master になっていました。

master

「あれ、なぜ master なんだろう?」

そう思って、本人に聞いてみました。

特別な意図があったわけではなく、調べたり参考にした情報の流れで、その名前を選んだようでした。

ここで私は、単なるブランチ名の違い以上に、大事な学びがあることに気づきました。

実は、私自身も「今どきは当然 main だろう」と、どこかで思い込んでいたのです。

mastermain は何が違うのか

まず結論から言うと、

Gitそのものにとっては、mastermain もただのブランチ名です。

Gitは内部的に、

  • master
  • main
  • develop
  • release

などの名前に特別な意味を持っていません。

極端な話、

banana

でもブランチ名として成立します。つまり技術的には、名前は自由です。

なぜ main が増えたのか

では、なぜ最近は main をよく見るのでしょうか。

理由は、2020年にGitHubが標準ブランチ名を master から main に変更したからです。

それ以前は、多くのチュートリアルや書籍でこう書かれていました。

git checkout master
git push origin master

しかし現在、GitHubで新規リポジトリを作ると、多くの場合デフォルトは main です。

つまり、

  • 昔の記事 → master
  • 新しい記事 → main

この混在が起きています。

誰かが間違っていたわけではない

今回の件で分かったのは、誰かが間違っていたわけではないということです。

  • 生徒が master を選んだ
  • 私は main を想定していた

この違いがあっただけです。改めて整理すると、

  • Gitとしてはどちらでも動く
  • 古い記事では master が普通
  • 新しい環境では main が標準

という状況でした。つまり今回起きていたのは、正誤の問題ではなく、前提条件の違いだったのです。

これは実務でも非常によくあります。

本当に大事なのは名前ではない

チーム開発で重要なのは、mastermain かではありません。

重要なのは、チーム内で統一されているかです。

たとえばある人が main に push するつもりで作業していて、別の人が master に push していたら、混乱します。

つまり問題は名前ではなく、認識のズレです。これはGitに限らず、実務全般で起きます。

技術記事を鵜呑みにしない

ここが今回の本題です。

生徒さんから、「記事にそう書いてありました」と聞くことがあります。でも実務では、その一言だけでは足りません。

確認したいのは次の3つです。

1. いつ書かれた記事か

2020年以前なら master 前提かもしれません。技術情報は古くなります。

2. どの環境の話か

同じGit関連でも、

  • Git本体(git init
  • GitHub
  • GitLab
  • Bitbucket
  • Visual Studio

では挙動が違う場合があります。

例えばGitHubでは現在、新規リポジトリのデフォルトブランチは main です。

一方で、ローカルで git init した場合は、Gitのバージョンや設定によって master になることがあります。

Visual Studioでも、内部で使っているGit設定や環境によって、main になったり master になったりします。

つまり、Gitを使っているから全部同じ挙動とは限らないのです。

3. 公式情報はどうか

ブログ記事よりも、

  • 公式ドキュメント
  • 現在のツール画面
  • 実際の挙動

のほうが信頼できます。

学習者から実務者へ

初学者の頃は、「正解を教えてください」と思いがちです。

でも実務では、「正解が一つではない」ことがよくあります。今回もそうです。

  • master でも動く
  • main でも動く
  • 環境によって違う
  • 時代によって標準が変わる

この状況で必要なのは暗記ではなく、前提条件を確認する力です。

まとめ

今回大事だったのは、master が正しいか main が正しいかという二択ではありません。

技術情報には、必ず

  • 時期
  • 環境
  • 前提条件

があります。ある記事では正しかったことが、今の標準とは違っていることもあります。

だからこそ、記事を読むときは、

  • いつ書かれたか
  • どのサービスの話か
  • 公式情報ではどうなっているか

を確認する習慣が大切です。

Gitのブランチ名ひとつでも、学べることは意外と多いものです。

訪問数 8 回, 今日の訪問数 8回

広告