Kho lưu trữ git của tôi bằng cách nào đó đã không hoạt động - tôi đã tải msysgit sáng nay và thay vì tên chi nhánh được hiển thị sau thư mục hiện tại, nó cho biết "((ref: re ...))", 'trạng thái git' báo cáo mọi thứ dưới dạng tệp mới, 'git log' và 'git reflog' cho tôi biết "nghiêm trọng: bản sửa đổi mặc định không hợp lệ 'HEAD'", v.v.
Thực hiện 'git reflog --all' hoặc 'gitk --all' cho tôi thấy phần còn lại của kho lưu trữ vẫn còn nguyên vẹn, nhưng có vẻ như nhánh tôi đang làm việc vừa biến mất, điều này giải thích tại sao HEAD dường như không tồn tại / chỉ vào bất cứ thứ gì.
Tôi biết git lưu giữ tất cả các loại thông tin và tôi cho rằng các cam kết của tôi vừa mới bị bỏ quên bằng cách nào đó, vậy có lệnh nào đó sẽ hiển thị cho tôi các cam kết đó để tôi có thể đặt lại HEAD cho chúng không?
CHỈNH SỬA: Ôi trời. Tôi đã phát hiện ra 'git fsck' và 'git fsck --full' báo cáo "nghiêm trọng: đối tượng 03ca4 ... bị hỏng". Tôi có thể làm gì ma quỷ về điều đó?
CHỈNH SỬA: Ôi trời ơi. Tôi đã kiểm tra một nhánh khác, sau đó cố gắng tạo lại nhánh gốc có cùng tên bằng cách sử dụng 'git checkout -b lostbranchname' và git nói rằng "lỗi: không thể giải quyết tham chiếu refs / heads / lostbranchname: Không có lỗi, nghiêm trọng: Không thành công để khóa ref để cập nhật: Không có lỗi ”. 'Không có lỗi' phải là một lỗi đặc biệt khó chịu. Vì vậy, có vẻ như nó vẫn còn quanh quẩn, nhưng không thể sử dụng và không thể bị giết.
EDIT: Siêu duper oh thân yêu. Tôi đã thực hiện một loạt các giải nén và đóng gói lại và thay thế mọi thứ như được đề xuất ở đây: Làm thế nào để khôi phục các đối tượng Git bị hỏng do lỗi đĩa cứng? , nhưng bây giờ tôi đang nhận được một hàm băm khác được báo cáo là hỏng, vì một thứ vô hại như 'trạng thái git'. Tôi nghĩ rằng toàn bộ điều đã được hoàn thành. Git thật đáng yêu và tất cả, nhưng tôi không nên phải đối mặt với những thứ như thế này.
git checkout -b lostbranchname
- nếu bạn chỉ quan tâm đến tên của nhánh (không phải nội dung của nó), bạn có thể xóa (hoặc đổi tên) theo cách thủ công.git/refs/heads/lostbranchname
- điều đó hy vọng sẽ làm được thủ thuật.