0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WindowsでGitを使うと「Filename too long」エラーが出るときの対処法

0
Posted at

はじめに

Windows環境でGitを利用していると、次のようなエラーが発生することがあります。

error: unable to create file xxx/yyy/zzz[ファイルパス] : Filename too long

これは、ファイルやディレクトリのパスがWindowsで許可されている最大長を超えたときに表示されるエラーです。
リポジトリを深い階層にクローンしたり、長いファイル名を含むプロジェクトを扱う際に発生しやすい問題です。

原因

このエラーの原因は、Windowsのファイルシステムにおけるパス長制限にあります。
Windowsでは、1つのファイルパスの長さが既定で260文字を超えることはできません。

参考:
Maximum Path Length Limitation

この制限は、レジストリやグループポリシーの設定を変更することで緩和することも可能ですが、システム管理者権限が必要であり、開発環境によっては自由に変更できない場合があります。

余談ですが、このWindowsのパス長制限は、開発をしていると頻繁に遭遇します。特に深い階層のzipファイルを展開するときなどによく引っかかります。
知らないと原因がわからず時間を浪費してしまうこともあるため、この制限の存在を知っておくだけでも役に立ちます。

対策

自分が実際に行っている、いくつかの対策を紹介します。

Gitの設定で長いパスを許可する

もっとも簡単で効果的な方法は、Gitの設定を変更して長いパスを許可することです。

git config --global core.longpaths true
  • core.longpaths: Windows上での長いファイルパスの制限を緩和する設定。
    trueに設定すると、Git for Windowsが260文字を超えるパスを扱えるようになります。

チームで共通の開発環境を使用している場合は、インストール手順書や初期設定スクリプトにこの設定を含めておくと、同様のエラーを防ぐことができます。

作業ディレクトリの階層を浅くする

もう一つの方法は、単純に深いパスで作業しないようにすることです。

  • リポジトリ構成を見直して、フォルダの階層をできるだけ浅くする
  • 作業ディレクトリを C:\workspace など、浅いパスに固定しておく

これはやや原始的な方法ですが、システムやツールの制限に依存しない確実な回避策です。
個人的な意見としても、深いパス構造は可読性や管理性の面でも好ましくないことが多いので、可能な限りシンプルな構成を心がけるのが良いと思います。

環境

  • git version 2.43.0.windows.1
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?