Gitの「fatal: –unshallow on a complete repository does not make sense」の解消

  • 作成日 2021.02.13
  • 更新日 2026.06.10
  • git
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-core

depthの値は、ある程度あればいい

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: 0

GitHub Actionsでは、fetch-depth: 0を指定すると完全な履歴を取得できます。

参考リンク