Saya menggunakan Git-1.9.0-preview20140217
untuk Windows. Seperti yang saya tahu, rilis ini harus memperbaiki masalah dengan nama file yang terlalu panjang. Tapi tidak untukku.
Tentunya aku melakukan sesuatu yang salah: saya lakukan git config core.longpaths true
dan git add .
kemudian git commit
. Semuanya berjalan dengan baik. Tetapi ketika saya sekarang melakukan git status
, saya mendapatkan daftar file dengan Filename too long
, misalnya:
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
Cukup sederhana untuk mereproduksi untuk saya: cukup buat aplikasi web Yeoman dengan generator Angular ("yo angular") dan hapus node_modules
dari .gitignore
file. Kemudian ulangi perintah Git yang disebutkan di atas.
Apa yang kulewatkan di sini?
Jawaban:
Git memiliki batas 4096 karakter untuk nama file, kecuali pada Windows ketika Git dikompilasi dengan msys. Ini menggunakan versi Windows API yang lebih lama dan ada batas 260 karakter untuk nama file.
Jadi sejauh yang saya mengerti ini, ini adalah keterbatasan msys dan bukan dari Git. Anda dapat membaca detailnya di sini: https://github.com/msysgit/git/pull/110
Anda dapat menghindari ini dengan menggunakan klien lain Git pada Windows atau set
core.longpaths
untuktrue
seperti yang dijelaskan dalam jawaban lainnya.Git dibuat sebagai kombinasi skrip dan kode yang dikompilasi. Dengan perubahan di atas beberapa skrip mungkin gagal. Itulah alasan untuk core.longpaths tidak diaktifkan secara default.
Dokumentasi windows di https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file memiliki beberapa informasi lebih lanjut:
sumber
core.longpaths
tidak diaktifkan secara default. Perhatikan juga bahwa Git untuk Windows tidak dikompilasi dengan MSYS. Sebagai gantinya, ini adalah aplikasi Windows asli yang dilengkapi dengan lingkungan MSYS yang dilucuti.Anda harus dapat menjalankan perintah
atau menambahkannya ke salah satu file konfigurasi Git Anda secara manual untuk mengaktifkan fungsi ini, setelah Anda berada di versi Git yang didukung. Sepertinya mungkin 1.9.0 dan sesudahnya.
sumber
Ini mungkin membantu:
Penjelasan dasar: Jawaban ini menyarankan agar pengaturan seperti itu tidak diterapkan pada sistem global (untuk semua proyek sehingga menghindari
--system
atau--global
menandai) konfigurasi. Perintah ini hanya menyelesaikan masalah dengan menjadi spesifik untuk proyek saat ini.sumber
--system
yang akan menerapkannya pada semua proyekBuat .gitconfig dan tambahkan
Anda dapat membuat file di lokasi proyek (tidak yakin) dan juga di lokasi global. Dalam kasus saya lokasinya
C:\Users\{name}\
.sumber
git config --global core.longpaths true
.gitconfig
file di jalur berikutC:\Users\{username}
dan cukup mengeditnya.Langkah-langkah untuk diikuti:
Catatan : jika langkah 2 tidak berfungsi atau memberikan kesalahan, Anda juga dapat mencoba menjalankan perintah ini:
Baca lebih lanjut di
git config
sini .sumber
Solusi yang lebih baik adalah mengaktifkan parameter longpath dari Git.
Tetapi solusi yang berfungsi adalah menghapus folder node_modules dari Git:
Tambahkan node_modules di baris baru di dalam file .gitignore. Setelah melakukan ini, dorong modifikasi Anda:
sumber
node_modules
:packages.lock
file ada di sini untuk memastikan versi yang diinstal olehnpm install
akan selalu sama, sampai Anda membuatnpm update
Untuk sepenuhnya yakin bahwa itu akan segera berlaku setelah repositori diinisialisasi, tetapi sebelum riwayat jarak jauh diambil atau file apa pun diperiksa, lebih aman untuk menggunakannya dengan cara ini:
Info lebih lanjut
sumber
Eksekusi
git config --system core.longpaths true
membuat kesalahan kepada saya:Diperbaiki dengan menjalankan perintah di tingkat global:
sumber
Anda juga dapat mencoba mengaktifkan jalur file yang panjang.
Jika Anda menjalankan Windows 10 Home Edition Anda bisa mengubah Registry Anda untuk mengaktifkan jalur panjang.
Pergi ke
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
dalamregedit
dan kemudian mengaturLongPathsEnabled
untuk1
.Jika Anda memiliki Windows 10 Pro atau Enterprise Anda juga dapat menggunakan Kebijakan Grup Lokal.
Pergi ke Konfigurasi Komputer → Template Administratif → Sistem → Filesystem di
gpedit.msc
, buka Aktifkan Win32 jalur panjang dan atur ke Diaktifkan .sumber
Perintah di atas bekerja untuk saya. Menggunakan '--system' memberi saya file konfigurasi bukan kesalahan terkunci
sumber
Pindahkan repositori ke root drive Anda (perbaikan sementara)
Anda dapat mencoba memindahkan sementara repositori lokal (seluruh folder) ke root drive Anda atau sedekat mungkin dengan root.
Karena jalurnya lebih kecil di root drive, kadang-kadang memperbaiki masalah.
Di Windows, saya akan memindahkan ini ke
C:\
atau root drive lain.sumber
Saya memiliki kesalahan ini juga, tetapi dalam kasus saya penyebabnya adalah menggunakan versi lama dari npm, v1.4.28.
Memperbarui ke npm v3 diikuti oleh
bekerja untukku. npm issue 2697 memiliki detail struktur folder "maksimal datar" yang termasuk dalam npm v3 (dirilis 2015-06-25).
sumber
Jika Anda bekerja dengan partisi terenkripsi Anda, pertimbangkan untuk memindahkan folder ke partisi tidak terenkripsi, misalnya a / tmp , berjalan
git pull
, dan kemudian pindah kembali.sumber
Di Mesin windows
Jalankan Command Prompt sebagai administrator kemudian jalankan perintah di bawah ini
sumber