序文
Gitを2.49.0に更新したら、ミラーレポジトリとしてcloneできなかったという、お話です。(fatal: multiple updates for ref 'refs/tags/...' not allowed)
検索してでてきた次のお話とは、別のお話です。
Gitを2.21.0にアップデートしたらcloneできなくなった話(fatal: multiple updates for ref 'refs/remotes/origin/master' not allowed) #homebrew - Qiita
上記のケースでは
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
といった設定がある場合に、
git config --global --unset remote.origin.fetch
などで、上記設定を取り除けばいいという、解決策(回避策?)が案内されていたようです。2019年ころのお話でした。
今回のケースは上記ケースと異なりgit 2.49.0
でmirrorオプションとbranchオプションを合わせて指定している場合に、cloneが止まってしまうケースがあるというお話です。
実例として、Fcitx-Mozcのレポジトリで説明します。
git clone --filter=tree:0 --mirror --branch fcitx https://github.com/fcitx/mozc.git fcitx-mozc
fatal: multiple updates for ref 'refs/tags/fcitx-mozc-1.10.1390.102.1' not allowed
上記のようなエラーが出て処理が止まります。
ちなみにbareオプションだとエラーがでず、cloneできました。(2.49.0よりも前のgitだと、mirrorオプションを用いた上記コマンドでcloneできていました。)
git clone --filter=tree:0 --bare --branch fcitx https://github.com/fcitx/mozc.git fcitx-mozc
回避策
git 2.49.0
でmirrorオプションでcloneする場合、branchを指定したい場合には、--single-branchオプションも追加しましょう。または、そもそもbranch指定を行わないというのが、今回の回避策になります。
git clone --filter=tree:0 --mirror --branch fcitx --single-branch https://github.com/fcitx/mozc.git fcitx-mozc
git clone --filter=tree:0 --mirror https://github.com/fcitx/mozc.git fcitx-mozc