2012-04-09 39 views
51

Sáng nay, tôi bắt đầu nhận được lỗi này từ git:file index nhỏ hơn so với dự kiến ​​

gây tử vong: chỉ số tập tin nhỏ hơn so với dự kiến ​​

chết người: tình trạng git --porcelain thất bại

Bất kỳ ý tưởng về những gì đang xảy ra và làm thế nào để giải quyết nó?

+0

Các bạn đã thử này http://vertis.github.com/2012/01/24/git-fatal-index-file-smaller-than-expected.html –

+0

Có, tôi đã thử trước khi đăng. Vấn đề là với submodules của tôi mà giữ tham nhũng tập tin chỉ mục của tôi (không biết tại sao). – karellm

+0

@karellm Bạn đã tìm ra _why_ điều này đã xảy ra chưa? – crmpicco

Trả lời

64

Tệp chỉ mục đã bị hỏng nhưng có thể dễ dàng tạo lại. Chỉ cần loại bỏ nó, và thêm lại các tập tin trong thư mục làm việc của bạn:

rm .git/index 
git add . 
+0

Như đã nói ở trên, nó không hoạt động vì xung đột với một mô-đun con đã làm hỏng chỉ mục của tôi hơn và hơn nữa ... Tôi đã loại bỏ mô-đun con, xóa chỉ mục và thêm tất cả. Nó cuối cùng đã làm việc. Cảm ơn! – karellm

+0

Tại sao điều này xảy ra? Tôi đã có điều này xảy ra hai lần trong hai tuần qua và tôi không thể nhìn thấy một lý do cho nó. – crmpicco

+2

Điều này không hiệu quả đối với tôi. Trước khi lỗi này tôi đã có một bản sao làm việc chủ yếu là sạch sẽ. Sau khi loại bỏ các tập tin chỉ mục và chạy 'git add .' nó hoạt động như thể tất cả các tập tin là mới và cần một cam kết. – Mark

54

Nếu bạn muốn giữ lại những thay đổi của địa phương, sử dụng như sau:

$ rm .git/index 
$ git reset HEAD . 

> Unstaged changes after reset: 
    modified foo.txt 
    modified bar.txt 
+0

Bất kỳ ý tưởng nào tại sao điều này xảy ra? Nó đã xảy ra với tôi khoảng 4-5 lần trong hai tuần qua. – crmpicco

+0

Câu trả lời này là câu trả lời hay nhất ở đây. Ngoài ra, hãy đăng ký nếu bạn sử dụng các mô-đun con git: Xóa các tệp chỉ mục đó (chúng nằm trong '.git/modules/src'). Điều này đã cho tôi tự hỏi tại sao lỗi vẫn xảy ra sau khi loại bỏ các tập tin chỉ mục (chính). – Graftak

3

Tôi đã có cùng một vấn đề và tôi đã cố gắng xóa .git/index sau đó đặt lại thành HEAD.
Bạn có thông tin chi tiết ở đây:
http://programertools.blogspot.com/2014/04/how-to-fix-fatal-index-file-smaller.html

+0

Đây là câu trả lời 1 – DannyFeliz

+1

$ reset git ĐẦU gây tử vong nhất: mập mờ tranh cãi 'TRỤ': cả hai phiên bản và tên tập tin Sử dụng '-' để tách đường dẫn từ các phiên bản, như thế này: 'git [ ... ] - [ ...] ' –

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