Gitの「fatal: –unshallow on a complete repository does not make sense」の解消
git fetch –unshallow実行時に「fatal: –unshallow on a complete repository does not make sense」が発生した場合の対処法を解説します。原因の確認方法やgit fetch –depthを使った解決手順、シャロークローンの仕組みについて紹介します。
目次
環境
- OS mac 10.15.5
- git 2.22.0
エラー全文
以下のコマンド実行時に発生。
git -C "/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core" fetch --unshallowエラー内容
fatal: --unshallow on a complete repository does not make sense対処法
対象のディレクトリまで移動して、以下のコマンドを実行する
cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-coredepthの値は、ある程度あればいい
git fetch --depth=10000
このエラーが発生する原因
このエラーは、シャロークローン(Shallow Clone)ではない通常のGitリポジトリに対して、git fetch --unshallowを実行した場合に発生します。
fatal: --unshallow on a complete repository does not make sense「complete repository(完全なリポジトリ)」に対して履歴制限を解除しようとしているため、Gitがエラーを返しています。
現在のリポジトリがシャロークローンか確認する
Git 2.15以降では、以下のコマンドでシャロークローンかどうか確認できます。
git rev-parse --is-shallow-repository結果が以下のようになります。
true # シャロークローン
false # 通常のリポジトリgit fetch –depthで履歴を取得する
履歴が不足している場合は、depthを指定して取得できます。
git fetch --depth=10000履歴数に応じてdepthの値を調整してください。
CI環境で発生する場合
GitHub ActionsやGitLab CIなどでは、デフォルトでシャロークローンが利用されることがあります。CIの設定で取得する履歴数を変更することで解決できる場合があります。
fetch-depth: 0GitHub Actionsでは、fetch-depth: 0を指定すると完全な履歴を取得できます。
参考リンク
- Git公式ドキュメント(fetch-options)
git fetchの各オプションについて確認できます。 - Stack Overflow:fatal: –unshallow on a complete repository does not make sense
同様のエラー事例と解決方法が掲載されています。 - Git公式ドキュメント(git clone)
シャロークローンの仕組みについて確認できます。
-
前の記事
javascript 割り算の結果を整数部のみ取得する 2021.02.13
-
次の記事
ASP.NET Core データベース ファースト(db first)でモデルを生成する 2021.02.14
コメントを書く