2013-06-26 24 views
8

Xin lỗi vì tiêu đề mơ hồ. Nếu bất cứ ai có thể tìm ra thứ gì đó tốt hơn, hãy chỉnh sửa điều này để cho tôi biết.Sửa kho git bị hỏng. Không có bản sửa đổi mặc định 'HEAD'

Gần đây, tôi đã xóa một kho lưu trữ git và kiểm tra một bản sao mới từ máy chủ. Thật không may, khi làm điều này, tôi đã quên rằng tôi đã sử dụng git-new-workdir (Tôi nghĩ rằng tôi đã nhân bản repo của tôi kiểm tra hai lần). Bây giờ tôi không thể làm bất cứ điều gì trong "workdir" của tôi:

$ git log 
fatal: bad default revision 'HEAD' 

git status cung cấp nhiều thay đổi hơn mức cần thiết. Có ai có bất kỳ suy nghĩ về cách tôi có thể sửa lỗi này?

Thông tin thêm:

Chạy git fsck mang lại cho tôi những điều sau đây:

$ git fsck 
notice: HEAD points to an unborn branch (dipole_fix) 
missing blob d92f4a4f53c95c375146d9623910d8ec214aa02f 
missing blob 7d81095605082af3252a47b47d81e48d4a78a668 
missing blob f5d21b7785c4bca4efaa91ce5ef5a8bd82d98792 
missing blob 79d3ad61db697ca7e89dbfd089a472dab0a7851b 
missing blob 2cf0e64cbc0a816d7dc1b26fef43c2eb7c4fb6ac 

Đối với những gì nó có giá trị, tôi có một chi nhánh từ xa với dipole_fix chi nhánh trên đó. Nó nên được (tương đối) đến nay.

Cập nhật 1 - Nhìn vào nội dung của .git trong workdir, có vẻ như tôi có một vài liên kết tượng trưng lơ lửng.

lrwxrwxrwx 1 mgilson mgilson  39 2012-04-26 10:43 remotes -> /orig_repo/.git/remotes 
lrwxrwxrwx 1 mgilson mgilson  40 2012-04-26 10:43 rr-cache -> /orig_repo/.git/rr-cache 
lrwxrwxrwx 1 mgilson mgilson  35 2012-04-26 10:43 svn -> /orig_repo/.git/svn 

Cập nhật 2 - Naievly nối remotes để /orig_repo/refs/remotes dường như thoát khỏi những "đầu xấu" vấn đề, nhưng bây giờ một git status mang lại cho tôi:

error: unable to find d92f4a4f53c95c375146d9623910d8ec214aa02f 
error: unable to find d92f4a4f53c95c375146d9623910d8ec214aa02f 
error: unable to find f5d21b7785c4bca4efaa91ce5ef5a8bd82d98792 
error: unable to find f5d21b7785c4bca4efaa91ce5ef5a8bd82d98792 
error: unable to find 79d3ad61db697ca7e89dbfd089a472dab0a7851b 
error: unable to find 79d3ad61db697ca7e89dbfd089a472dab0a7851b 

Trả lời

2

TRỤ rất dễ dàng để sửa chữa, chỉ git checkout một cái gì đó. (hoặc bạn thậm chí có thể chỉnh sửa .git/HEAD bằng cách sử dụng một trình soạn thảo, đặt một ref: hoặc một băm nhấn). Hoặc tạo thiếu dipole_fix chi nhánh địa phương. (bạn có thể xem tệp vừa được đề cập để xem vị trí của nó ...)

Liên kết treo lủng: sửa chữa hoặc xóa chúng.

1

Kiểm tra chi nhánh hiện tại của bạn bằng cách:

git branch 

Nếu nó không hiển thị cho bạn bất kỳ chi nhánh là chi nhánh hiện tại sau đó thử:

git reset --hard <some branch> 
Các vấn đề liên quan