Ngay trước khi nhận lỗi này tôi đã làm như sau:sửa chữa một đối tượng lỏng lẻo tham nhũng như một cam kết trong git
[email protected]:~/file/path$ git add *
[email protected]:~/file/path$ git push
^C
[email protected]:~/file/path$ git commit -m "my commitmesg"
(Tôi hoảng sợ vì tôi quên để thêm một cam kết trước khi đẩy, vì vậy tôi Cntrl + c'ed . nó
Bây giờ, tôi nhận được lỗi sau từ git fsck -full:.
error: inflate: data stream error (incorrect header check)
error: corrupt loose object '5cdeb9c3a1fe164cb4d2779d1e0d9d9f4ef18c6a'
fatal: loose object 5cdeb9c3a1fe164cb4d2779d1e0d9d9f4ef18c6a (stored in .git/objects/5c/deb9c3a1fe164cb4d2779d1e0d9d9f4ef18c6a)
git mèo-file -t 5cdeb9c3a1fe164cb4d2779d1e0d9d9f4ef18c6a trả về đối tượng này là một cam kết
Sau khi tìm kiếm, tôi đã tìm thấy cách sửa lỗi này nếu đối tượng là blob nhưng không phải nếu đó là cam kết.
Tôi có repo của tôi trên github nhưng họ không có những thay đổi này mà tôi đã cố gắng cam kết (vào thời điểm này, tôi không quan tâm nếu tôi mất chúng mãi mãi, nhưng muốn có được chúng nếu có thể). Tôi nhân bản từ repo gh của tôi nhưng nó không có bất kỳ đối tượng nào trong thư mục .git của nó. :/ –
Các đối tượng được đóng gói. Giải nén chúng thành các tệp riêng lẻ với 'git unpack-objects .git/objects/pack/*. Pack'. – Schwern
Nếu lệnh git unpack-objects không làm gì cả "** không có gì sẽ được giải nén nếu ** bạn sử dụng lệnh này trên một tệp gói tồn tại trong kho lưu trữ đích." ([git docs] (http://git-scm.com/docs/git-unpack-objects)). Để giải nén các đối tượng, chỉ cần tạo một repo mới bằng cách sử dụng 'git init' và chạy lệnh để giải nén tệp gói (từ kho lưu trữ nhân bản) khỏi kho lưu trữ mà bạn vừa tạo. – svallory