2015-03-27 12 views
9

Thư mục bao gồm các tệp có tên tệp như abc~1, 123~1, a1d2~3.Không thể thêm tệp có tên có dấu ngã, '~' theo sau là số

Khi tôi làm git add --all nó nói,

$ git add --all 
error: Invalid path 'abc~1.png' 
error: unable to add abc~1.png to index 
fatal: adding files failed 

Tôi đã làm một thử và sai và tôi thấy lỗi này vẫn tồn chỉ khi biểu tượng dấu ngã được theo sau bởi một số.

Nếu thư mục được theo dõi bởi git lần đầu tiên, các tệp khác cũng không được Git theo dõi.

$ git clean --dry-run 
Would remove Rest.png 
Would remove abc~1.png 

Vui lòng giúp tôi khắc phục sự cố này.

+0

Bạn có chắc chắn muốn thêm tất cả các tệp đó bằng ~ vào tên của chúng không? trông giống như các tập tin tạm thời của trình biên tập tạo ra cho tôi .. –

+0

Vâng, những hình ảnh có tên tập tin (abc ~ 1.png) được sử dụng trong mã java. – SabareeshSS

Trả lời

15

Đây là kết quả của thay đổi được thực hiện đối với msys Git in December 2014.

Trên hệ thống tệp mặc định của Windows, FAT và NTFS, tên tệp kiểu mặc định của Windows là được hỗ trợ để tương thích ngược. Điều đó có nghĩa là có nhiều cách cách để tham chiếu cùng một tệp. Ví dụ, tập tin thông tin xác thực-bộ nhớ cache - daemon.c cũng có thể được truy cập qua CREDEN ~ 1.C (trừ khi một tệp khác đã được ánh xạ tới cái gọi là "tên ngắn", tức là tên ngắn chính xác là không thể đoán trước).

Kể từ khi lập bản đồ này là không thể đoán trước, chúng ta cần để không cho phép tên tập tin đó trên Windows, và trong khi ở đó, chúng tôi cũng loại trừ tên tập tin khác không tương thích với các hệ thống Windows tập tin (ví dụ NUL, CON, vv).

Chúng tôi sử dụng bảo vệ core.protectNTFS được giới thiệu trong cam kết trước đây để thực hiện chắc chắn rằng chúng tôi chỉ ngăn các tên tệp đó khi thích hợp.

Để vô hiệu hóa hành vi này, bạn có thể chạy:

git config core.protectNTFS false 

Tuy nhiên, kể từ khi hành vi mới ở đó để bảo vệ bạn, tôi khuyên bạn nên thay đổi nó trở lại sau khi đã thêm vào tập tin của bạn:

git config core.protectNTFS true 

Chỉ tắt tính năng bảo vệ này khi bạn cần thêm tệp có dấu ngã ở tên hoặc kiểm tra các nhánh có chứa tên tệp như vậy.

Nói chung, tôi khuyên bạn nên tránh các tên tệp như vậy nếu làm việc trong môi trường Windows.

+0

Cảm ơn rất nhiều Anthony về liên kết và giải pháp được cung cấp. – SabareeshSS

+0

Tìm tốt, +1. Điều này có thể được phá vỡ bằng cờ '-f' trong' git add' không? –

+1

@mu 無 Không, không thể. Saby, Vui mừng được giúp đỡ. Tôi sẽ đặt cược bạn sẽ không là người duy nhất bị ảnh hưởng bởi điều này. Tôi đã đề xuất chỉnh sửa để người khác có thể dễ dàng tìm thấy câu hỏi này. –

Các vấn đề liên quan