Tôi đang sử dụng git svn
để có được một số ưu điểm tốt với máy chủ svn do công ty uỷ quyền. Tôi chỉ có một rebase đi méo kinh dị, và tôi "m cố gắng tìm ra cách tốt nhất để phục hồiPhục hồi từ một lần rebase không thành công
Đây là những gì đã xảy ra:.
Để bắt đầu, tôi đã có này
---1 (master) \--B--C--D--E (feature/fix-widgets)
Vì vậy, sau đó tôi đã thực hiện
git checkout master
và sau đógit svn rebase
trên máy chủ để gỡ bỏ các cam kết đó.Tôi không lường trước bất kỳ xung đột nào giữa chi nhánh và chủ nhân của tôi, bởi vì những thay đổi nằm trong một thư mục hoàn toàn khác. Tôi có điều này:---1--2--3--4 (master) \--B--C--D--E (feature/fix-widgets)
Trường hợp
1--2--3--4
là các cam kết được lấy từ svn.Tiếp theo, tôi làm
git checkout feature/fix-widgets
và sau đógit rebase master
. Có ngay lập tức một cuộc xung đột, và một số điều không thêm lên, vì vậy tôi quyết định trượt đi và nhìn vào mọi thứ cẩn thận hơn. Tôi làmgit rebase --abort
, hy vọng điều này sẽ khôi phục lại tôi đến nơi tôi đã trước khi rebase.tôi làm
git rebase --abort
và nhận được thông báo sau$ git rebase --abort error: git checkout-index: unable to create file somedir/somefile.cs (Permission denied) fatal: Could not reset index file to revision 'be44daa05be39f6dd0d602486a598b63b6bd2af7'.
Bây giờ tôi không biết phải làm gì.
git status
cho thấy tôi đang ở trênfeature/fix-widgets
, nhưng tôi đã thay đổi toàn bộ giai đoạn và một số lượng lớn các tệp không được theo dõi trước đó đã được cam kết. Tôi sẽ ổn nếu tôi có thể quay lạiE
.
Tôi gặp phải sự cố rất giống nhau hôm nay - Tôi đoán bạn đang sử dụng git trên Windows, hệ điều hành đáng yêu nghĩ rằng khóa chia sẻ là ý tưởng hay. Tôi đoán là lý do nó nghẹt thở trên somedir/somefile.cs là nó đã được mở ở đâu đó ... đây là nguyên nhân của sự thất bại của tôi rebase. Đóng tất cả các chương trình mở mà tôi có thể tìm thấy, đặt lại theo câu trả lời đã chọn, sau đó rebasing, làm việc mà không có vấn đề gì. –
+1 cho câu hỏi được viết tốt đã cứu tôi khỏi khóc. – Tinman