はじめに
通常の git clone は履歴のダウンロード後に全ファイルをローカルに展開します。このとき Windows の MAX_PATH 制限(既定で 260文字)が超えると失敗してしまい、困りましたので対処法をまとめておきます。
対処法
以下を実行すると良いです。
# 部分クローン git clone --filter=blob:none --no-checkout https://github.com/XXX/XXX.git cd Netskope-Docs-Archiver # Sparse Checkout有効化 git sparse-checkout init --cone # 除外したいパスを指定 git sparse-checkout set --skip-checks '!docs' # チェックアウト git checkout main
解説
--filter=blob:none を付けると、ファイル本体(blob)を取らずにメタデータだけ取得するため、展開時に長いパスのファイルがローカルに生成されません。さらに --no-checkout でそもそも作業ツリーを展開しないので、長いパスが存在しても問題になりません。
このあと、git checkout や git sparse-checkout で長いパスを含むファイルを取得しようとすると、そこで初めてロングパス制限に当たります。
なので、長いパスを含むパスを指定して除外しておけば良い、ということです。
おわりに
最近、AIが開発の手助けをしてくれるおかげで、GitHubのような開発ツールに触れる機会も増えました。触ってみて、はじめて気づくこともたくさんありますよね。ほんと。
以上
P.S. 役に立ったなと思った方はビール一杯奢ってください!
この続きはcodocで購入