CodeCommitのデフォルトブランチがmasterからmainに変更されました

2021.01.20

いわさです。

gitコミュニティではデフォルトブランチ名 master について議論され、2020年に多くのgitホスティングサービスやクライアントツールにて master から main に変更されたり、デフォルトブランチを明示的に指定するような機能が追加されました。

AWS CodeCommitでも、2021年1月19日よりデフォルトブランチが master から main に変更されました。

新規リポジトリ

現在、新規作成したリポジトリでマネジメントコンソールより空のブランチへ新規ファイルを追加すると master は作成されず、mainブランチが作成されます。

既存リポジトリ

変更以前に作成したブランチはmasterブランチのままで影響は受けていません。

mainブランチに変更する場合はmainブランチを作成した上で、CodeCommitの機能でデフォルトブランチ設定の変更を行う必要があります。

コンソールからの変更

リポジトリの設定画面から変更出来ます。

余談ですが、私はデフォルトブランチ名の変更後の保存ボタンを間違えており、「反映されない!?」となってしまっていました。

正しくは下のボタンです。

CLIでの変更

update-default-branchコマンドを使います。

[cloudshell-user@ip-10-0-56-82 ~]$ aws codecommit update-default-branch --repository-name repo_iwasa --default-branch-name main

変更されました。

注意点

ブランチ名の変更にあたって注意したいのが、以下のようにブランチ名で保護ポリシーを設定している場合です。

masterブランチ名の変更にあわせて、mainブランチに変更する必要がありますので忘れないようにしましょう。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Deny",
            "Action": [
                "codecommit:GitPush",
                "codecommit:DeleteBranch"
            ],
            "Resource": "arn:aws:codecommit:ap-northeast-1:999999999999:repo_iwasa",
            "Condition": {
                "StringEqualsIfExists": {
                    "codecommit:References": [
                        "refs/heads/main",
                        "refs/heads/develop"
                    ]
                },
                "Null": {
                    "codecommit:References": false
                }
            }
        }
    ]
}

さいごに

デフォルトブランチ変更の背景から、多くのgitサービスやツールでもブランチ名の変更が必要です。
変更にあたるチームへの影響を確認のうえ、移行をご検討ください。

一部AWSドキュメント(日本語版など)はmasterブランチの表記がまだ残っていますが英語ページはmainに修正済みのため、徐々に修正されていくでしょう。