[解決済み] Git for Windows でファイル名が長すぎる
質問
私は
Git-1.9.0-preview20140217
Windows用です。私が知っているように、このリリースでは長すぎるファイル名の問題が修正されるはずです。しかし、私にとってはそうではありません。
確かに、私は何か間違ったことをしているようです。
git config core.longpaths true
と
git add .
で、次に
git commit
. すべてうまくいきました。しかし、今、私が
git status
というファイルのリストが表示されます。
Filename too long
は、例えば
node_modules/grunt-contrib-imagemin/node_modules/pngquant-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-handle-source-errors.js: Filename too long
私にとっては非常に簡単な再現方法です。
ヨーマン
WebアプリケーションをAngularジェネレータで作成し("yo angular")、そのアプリケーションから
node_modules
から
.gitignore
ファイルを作成します。そして、前述の Git コマンドを繰り返し実行します。
何が足りないのでしょうか?
解決方法は?
Gitはファイル名に4096文字という制限があります。ただし、WindowsでGitをmsysでコンパイルした場合は例外です。msysはWindows APIの古いバージョンを使っていて、ファイル名の文字数が260文字に制限されているのです。
つまり、私が理解する限り、これはmsysの制限であって、Gitの制限ではないのです。詳しくはこちらをご覧ください。 https://github.com/msysgit/git/pull/110
Windowsで他のGitクライアントを使うか、あるいは
core.longpaths
から
true
他の回答で説明したとおりです。
git config --system core.longpaths true
Gitはスクリプトとコンパイルされたコードの組み合わせでビルドされます。上記の変更により、一部のスクリプトが失敗する可能性があります。これが、core.longpathsがデフォルトで有効になっていない理由です。
のWindowsドキュメントを参照してください。 https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd#enable-long-paths-in-windows-10-version-1607-and-later には、もう少し詳しい情報があります。
<ブロッククオートWindows 10, バージョン 1607 からは、MAX_PATH の制限がなくなりました。 は、一般的なWin32ファイルおよびディレクトリ関数から削除されました。ただし 新しい動作にオプトインする必要があります。
レジストリキーにより、新しいロングパスの有効/無効を設定することができます。 の動作があります。ロングパスの動作を有効にするには、以下のレジストリキーを設定します。 HKLMSYSTEM CurrentControlSet FilterSystem LongPathsEnabled (タイプ: REG_DWORD)
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】GitHub: クローンには成功したが、チェックアウトに失敗した
-
[解決済み】mavenの.m2フォルダの欠落
-
[解決済み] Powershell」が内部コマンド、外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されない
-
[解決済み] ポート8005はWindows 10のシステムプロセスで使用されます。
-
[解決済み] WPCups.exeとは何ですか?[クローズド]です。
-
[解決済み] vbscriptのコンソールへの出力
-
[解決済み] Windowsでフォルダへのアクセスを回復する方法
-
[解決済み] WindowsタスクスケジューラでVBScriptが実行されない
-
[解決済み] Autohotkey Controlsendコマンドを理解する
-
[解決済み] Windows 7 - 'make'が内部または外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されない