はじめに
これまでgitのデフォルトブランチはmaster
というのが常識でしたが、
2020年10月1日以降に新規作成したGitHubリポジトリではデフォルトブランチにmain
が指定されるようになります。
Set the default branch for newly-created repositories
https://github.blog/changelog/2020-08-26-set-the-default-branch-for-newly-created-repositories/
これからgitを扱う再利用可能なスクリプトを書く際には、リポジトリのデフォルトブランチがmaster
なのかmain
なのか知りたくなる場面があるかと思います。
方法
GitLabのCI_DEFAULT_BRANCH
のような変数が予め用意されている場合はそれを使えば十分ですが、
そうでない環境では何らかの手段でデフォルトブランチを調べることになります。
gitとsedが使える環境では、以下のコマンドを実行するとデフォルトブランチがわかります。
$ git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@'
master
別解として、cutとrevを使うと次のようにかけます。
$ git symbolic-ref refs/remotes/origin/HEAD | rev | cut -d/ -f1 | rev
master
$ git symbolic-ref refs/remotes/origin/HEAD | cut -d/ -f4
master
もっといいやり方があったら教えて下さい。