Tôi có một nhánh git (được gọi là v4), được tạo từ chủ mới hôm qua. Có một vài thay đổi đối với master mà tôi muốn chuyển sang phiên bản 4. Vì vậy, trong v4, tôi đã cố gắng thực hiện rebase từ master và một tệp vẫn tiếp tục làm rối tung mọi thứ: tệp văn bản một dòng, chứa số phiên bản. Tệp này app/views/common/version.txt
, trước khi khôi phục có chứa văn bản này:
v1.4-alpha-02
Đây là những gì tôi đang làm:
> git rebase master
First, rewinding head to replay your work on top of it...
Applying: new version, new branch
error: patch failed: app/views/common/version.txt:1
error: app/views/common/version.txt: patch does not apply
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging app/views/common/version.txt
CONFLICT (content): Merge conflict in app/views/common/version.txt
Failed to merge in the changes.
Patch failed at 0001 new version, new branch
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".
Các version.txt
bây giờ trông như thế này:
<<<<<<< HEAD:app/views/common/version.txt
v1.4-alpha-02
=======
v1.4-alpha-01
>>>>>>> new version, new branch:app/views/common/version.txt
Vì vậy, tôi dọn dẹp nó và nó trông như thế này bây giờ:
v1.4-alpha-02
và sau đó tôi cố gắng tiếp tục: lúc đầu tôi thử cam kết:
> git commit -a -m "merged"
# Not currently on any branch.
nothing to commit (working directory clean)
Không có may mắn ở đó. Vì vậy, tôi đã cố gắng thêm tệp:
git add app/views/common/version.txt
Không phản hồi. Tôi đoán không có tin tức nào là tin tốt. Vì vậy, tôi cố gắng tiếp tục:
> git rebase --continue
Applying: new version, new branch
No changes - did you forget to use 'git add'?
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".
Đó là vào thời điểm này, sau khi nói đi nói lại chuyện này, tôi đập đầu vào bàn.
Những gì đang xảy ra ở đây? Tôi đang làm gì sai? Bất cứ ai có thể đặt tôi thẳng thắn?
EDIT - cho unutbu
Tôi đã thay đổi tệp như bạn đề xuất và gặp lỗi tương tự:
> git rebase master
First, rewinding head to replay your work on top of it...
Applying: new version, new branch
error: patch failed: app/views/common/version.txt:1
error: app/views/common/version.txt: patch does not apply
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging app/views/common/version.txt
CONFLICT (content): Merge conflict in app/views/common/version.txt
Failed to merge in the changes.
Patch failed at 0001 new version, new branch
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".
git rebase master
và để nó thất bại ; 2) sau đó bạn chỉnh sửa version.txt
và làm cho nó giống như ở thời điểm đó, và lưu bản chỉnh sửa; 3) sau đó bạn git add .../version.txt
; 4) sau đó bạn làm git rebase --continue
( không phải 'cam kết' )! Nếu rebase --continue
thành công ở đây, nó đã được cam kết (không cần git commit
ở đây!) - vì vậy tất cả những gì còn lại phải làm git push
(nếu bạn sử dụng repo từ xa). Hy vọng điều này sẽ hữu ích, nếu tôi hiểu đúng :)
- chúc mừng!