2012-01-17 24 views
21

Tôi đã thử một vài thứ với một số chi nhánh nên tôi đã khởi động lại trên một nhánh tạm thời và đang giải quyết một số xung đột khi tôi quyết định không hoàn thành việc rebase nó theo một cách khác. Sau đó tôi đã xóa chi nhánh tạm thời liên quan và tiếp tục theo cách vui vẻ của tôi. Một vài giờ sau, tôi muốn rebase chi nhánh khác và nhận được thông báo lỗi nàygit rebase và xóa các nhánh rebasing gây ra thông báo lỗi "Tương tác rebase đã bắt đầu"

Interactive rebase already started 

git rebase --abort hiển thị thông điệp này lỗi

error: unable to resolve reference refs/heads/tmp/rails3-rails-2-fixes: No such file or directory 
fatal: Cannot lock the ref 'refs/heads/tmp/rails3-rails-2-fixes'. 
Could not move back to refs/heads/tmp/rails3-rails-2-fixes 

Cố gắng chỉ cần tạo một chi nhánh tên là tmp/rails3-rails-2-fixes nhưng không có con xúc xắc

Bất kỳ ý tưởng làm thế nào tôi có thể giải quyết điều này?

Trả lời

18

Hm, đó là khó xử. Việc tái tạo nhánh sẽ là lần thử đầu tiên của tôi. Nếu không, bạn có thể xóa thư mục .git/rebase-merge, chứa trạng thái rebase. (Di chuyển nó sang một bên thay vì an toàn, nếu bạn muốn.) Một khi đã biến mất, Git không nên có bất kỳ cách nào để biết có một sự phục hồi đang tiến hành. Hãy xem các chi nhánh của bạn để đảm bảo rằng bạn không quản lý được bất kỳ cam kết nào trong quá trình này và bạn sẽ tốt!

+1

Điều đó làm việc và cho đến nay tôi không thể nhìn thấy bất kỳ cam kết còn thiếu, cảm ơn rất nhiều bạn đã lưu cho tôi rất nhiều rắc rối: D – tee

9

kiểm tra git status và xem bạn không thanh toán bất kỳ chi nhánh nào sau lần rebase cuối cùng thì bạn không thuộc bất kỳ chi nhánh nào.

becase chuyển rebase bạn đến một khu vực chi nhánh thuốc, vì vậy bạn phải hủy bỏ rebase cuối cùng bằng cách sử dụng git rebase --abort lệnh và kiểm một chi nhánh để đi vào chi nhánh và bắt đầu rebasing mới

+0

Tôi đã có thể thanh toán các chi nhánh khác kể từ đó, đó là một trong những lý do tại sao tôi không nhận thấy cho đến khi tôi cố gắng hoàn lại chi nhánh khác – tee

+0

có bạn có thể thanh toán chi nhánh bất kỳ lúc nào. nhưng đây là chức năng git, nó sẽ không cảnh báo khi bạn thanh toán về việc rebasing. nhưng git cảnh báo về tùy chọn tiếp tục và hủy bỏ khi xung đột xảy ra – Dau

+0

Tôi đã git rebase --abort nhưng nhận được thông báo lỗi ở trên, bất kỳ giải pháp nào khác có thể? – tee

1

Tôi vừa gặp lỗi rất giống nhau trong lần thử lại không thành công. Không có mẹo nào ở trên hữu ích. Dưới đây là những gì tôi đã nhìn thấy:

$ git pull --rebase 
warning: refname 'xport1' is ambiguous. 
First, rewinding head to replay your work on top of it... 
Fast-forwarded xport1 to 98b787b0ea1f7f6771a5b1b56c7e8cc67b84c242. 
error: Ref refs/heads/xport1 is at 98b787b0ea1f7f6771a5b1b56c7e8cc67b84c242 but expected 3865d63ffb3a1a495363bfbd9ebb089e16152839 
fatal: Cannot lock the ref 'refs/heads/xport1'. 
Could not move back to refs/heads/xport1 

Nó chỉ ra rằng nếu một tên tham chiếu là ambigious, rebase sẽ thất bại, ít nhất là trên git phiên bản 1.7.10.2 (Apple Git-33). Tôi chọc xung quanh và thấy tôi đã vô tình tạo một thẻ có cùng tên với chi nhánh mà tôi đang cố gắng khởi động lại. Xóa thẻ đã loại bỏ lỗi này.

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