2023/04/03

Ubuntuで最新のgit

git のデフォルトブランチをmainに

github.comがデフォルトのブランチを main に 切り替えてからずいぶん時間がたった。自分の手元の環境もデフォルトを main にしたつもりがなぜか master になってしまうという問題を抱えていた。

設定変更

以下のコマンドで設定できる。

git config --global init.defaultBranch main

git config で確認

$ git config --list | grep defaultbranch
init.defaultbranch=main

設定ファイル自体も確認

$ cat ~/.gitconfig | grep defaultBranch -n1
25-[init]
26:     defaultBranch = main

良さそう。

しかし、git init してみるとまだ master になってしまう。

git init するときに main 指定してみる

--initial-branch というオプションがあるらしい。

$ git init --initial-branch main

打ってみると、以下のようにエラーになる。というか、オプションが存在しない模様。

$ git init --initial-branch main
error: unknown option `initial-branch'
usage: git init [-q | --quiet] [--bare] [--template=<template-directory>] [--shared[=<permissions>]] [<directory>]

    --template <template-directory>
                          directory from which templates will be used
    --bare                create a bare repository
    --shared[=<permissions>]
                          specify that the git repository is to be shared amongst several users
    -q, --quiet           be quiet
    --separate-git-dir <gitdir>
                          separate git dir from working tree

調べてみると --initial-branch オプションは 2.28 以降の機能らしい。

手元のgit古いわ

自分の環境見てみると、2.17でした。耳障り的にはめっちゃくちゃ新しい感じするけど(老人)、古い。

$ git version
git version 2.17.1

新しい git 入れる

$ sudo add-apt-repository ppa:git-core/ppa
$ sudo apt update
$ sudo apt upgrade git

新しくなりました

$ git version
git version 2.40.0

git init すると、

~/repos/foo:$ git init
Initialized empty Git repository in /home/user/repos/foo/.git/

~/repos/foo:main$

無事 main になった。

サイト内検索