2010-09-15 13 views

Trả lời

27

Như thread illustrates này, điều này thường là một vấn đề không gian đĩa:

$ git status 
fatal: unable to write new_index file 

One cause of this that I found was that my file system had run out of space.
Finding large directories with something like the following helped clean up some log files that had run wild :

$ du -h/| grep ^[0-9.]*G 

Lưu ý: bạn cũng có thể nhìn thấy nó cho

Problem still remained so I ran File Monitor from Sysinternals Suite.
It seems that Eclipse is accessing index file constantly and blocks command line git

Yeah, looks like Windows Defender strikes again. I always forget to disable that damn thing. I can't believe how broken it is. Destroys Blu-ray playback at home, breaks Git at work...

+3

+1 cho phần Windows Defender! http://windows.microsoft.com/en-US/windows-vista/Turn-Windows-Defender-on-or-off cũng đã thực hiện thủ thuật –

+0

, bạn cũng có thể thay đổi quyền (trong cửa sổ) trên thư mục .git bằng cách uncheking chỉ đọc –

+0

Đó là lý do tại sao AV như MSE cho phép bạn chọn các thư mục không giám sát. –

3

tôi đã tìm thấy. Chỉ cần giải phóng một số dung lượng đĩa.

+1

Tôi đã viết cùng một điều;) – VonC

+0

Đúng, 0 byte miễn phí trên đĩa của tôi đã gây ra lỗi này. –

6

tôi đã nhận được báo lỗi tương tự trong khi tôi đang sáp nhập một repo git đó là sshfs gắn kết. Không có thiếu không gian ở bất cứ đâu.

Trong trường hợp của tôi, giải pháp là thêm tùy chọn -o workaround = rename vào lệnh sshfs mount.

Giống như vậy: sshfs -o idmap = user -o uid = [uid LOKAL] -o gid = [LOKAL gid] -o workaround = đổi tên [chủ]: [mountpoint]

14

Nếu bạn đang sử dụng TortoiseGit, lỗi này (hoặc gần đây hơn: lỗi : Không thể viết chỉ mục.) rất có khả năng gây ra bởi có biểu tượng TortoiseGit lớp phủ được bật. Để vô hiệu hóa lớp phủ biểu tượng, hãy vào:

TortoiseGit> Cài đặt> Biểu tượng Overlays

và thiết lập Tình trạng bộ nhớ cache để Không. Điều này có thể được sửa trong phiên bản TortoiseGit trong tương lai, nhưng hiện tại nó có vẻ là phổ biến.

+0

Đây là nguyên nhân của vấn đề đối với tôi. Cảm ơn nhiều. – TheXenocide

+0

Đây cũng là nguyên nhân trong trường hợp của tôi. Cảm ơn bạn đã đăng câu trả lời này. – Jon

+0

Yup, điều này là dành cho tôi - loại. Tôi đã phải thực sự giết chết quá trình 'TGitCache.exe', nhưng điều đó đã làm các trick. –

3

Tôi đã làm theo mọi giải pháp ở đây và không có giải pháp nào trong số đó hoạt động. Tôi không thiếu dung lượng đĩa, tôi đã vô hiệu hóa Windows Defender, các lớp phủ biểu tượng bị tắt và không có gì. Tôi đã tấn các tập tin để nhập khẩu và có thể điều này gây ra vấn đề (tôi đã có boost thư viện trong số những thứ khác).

Tôi chỉ cần mở "Git Bash" và phát hành một số git addgit commit và tất cả đều tốt. Điều này có một cái gì đó để làm với TortoiseGit nhưng tôi không chắc chắn những gì. Nó dường như bị nghẹt thở trên một số lượng lớn các tệp hoặc độ sâu thư mục lớn.

0

Tôi đã sử dụng Unlocker trên .git\index.lock để mở khóa mọi tay cầm được mở bởi các quy trình khác. Trong trường hợp của tôi nó là TGitCache.exe.

1

Tôi gặp sự cố này nhưng tôi đã có thể cam kết với msysgit.Tôi cập nhật tortoisegit, và cũng nhận thấy rằng phiên bản msysgit của tôi không đồng bộ với git rùa. Tôi không chắc chắn nếu phiên bản mới nhất đã sửa nó, hoặc là do có các phiên bản rùa và msysgit khác nhau. Dù sao, một điều khác để kiểm tra. Tất cả bắt đầu hoạt động sau khi cập nhật cả hai thành TortoiseGit 1.7.10.0 phiên bản git 1.7.10.msysgit.1

3

Tôi gặp lỗi này khi sử dụng Cygwin và git-svn. Giải pháp hiệu quả đối với tôi là thu gom rác thải (có vẻ như vào thời điểm đó):

 

$ git gc 

2

Tôi có cùng một vấn đề. Trong trường hợp của tôi, các giải pháp trên không hiệu quả.

Lý do đằng sau lỗi này là tệp .git/index bị hỏng vì một số lý do không xác định. Tôi vừa đổi tên tệp thành một thứ khác và chạy 'git add.' lệnh từ git bash và nó hoạt động.

Hy vọng điều này sẽ giúp ai đó.

+0

Điều này đã làm cho các trick cho tôi. Nhưng thay vì chạy 'git add .', tôi chạy' git reset', tạo lại tệp chỉ mục mà không cần thêm tất cả mọi thay đổi vào vùng dàn dựng. Tôi đã SourceTree mở cho repo trên một mount SSHFS trong khi đồng thời tương tác với nó thông qua thiết bị đầu cuối; điều gì đó có thể đã khiến tệp bị hỏng. – sffc

0

Đối với tôi đó là sự cố về khóa tệp.

Để giải quyết nó I:

  1. sao chép các tập tin chỉ mục (nằm ở ẩn ".git" thư mục)
  2. xóa bản gốc
  3. đổi tên bản sao trở lại 'index'

Hy vọng điều này sẽ hữu ích!

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