Làm thế nào để hủy bỏ một rebase git từ bên trong vim trong khi chỉnh sửa tương tác


138

Khi tôi thực hiện một rebase tương tác, ví dụ

git rebase -i HEAD~3

trình soạn thảo tương tác rebase (vim trong trường hợp của tôi) mở ra để cho tôi chỉnh sửa các cam kết để rebase

pick c843ea2 Set Vim column limit to 80 (OS X)
pick fc32eac Add Bash alias for `pbcopy` (OS X)
....

Nếu bây giờ tôi quyết định rằng tôi muốn hủy bỏ rebase và thoát vim bằng cách sử dụng :qrebase thì dù sao đi nữa. Tôi đang sử dụng phiên bản git 1.9.0.msysgit.0trên windows.

Chắc chắn tôi chỉ có thể xóa tất cả các pickdòng, nhưng có thể sẽ rất nhiều việc phải làm nếu tôi bắt đầu một lịch sử lâu hơn. Có cách nào khác không?

Làm cách nào tôi có thể thoát khỏi trình soạn thảo tương tác rebase (vim) và hủy bỏ rebase?


Bạn có muốn sử dụng một trình soạn thảo khác, chẳng hạn như Notepad? Nếu vậy, tôi có một giải pháp cho điều đó
Steven Penny

5
git rebase --abort
vanduc1102

@ vanduc1102 Hoạt động với tôi, ước gì nó là câu trả lời!
C Bauer

Câu trả lời:


256

Nếu bạn thoát khỏi trình soạn thảo với mã lỗi, rebase sẽ bị hủy bỏ.

Để thoát với mã lỗi trên vim, hãy làm

:cq

Xem ở đây và vimdoc ở đây .


6
Ít gõ hơn, kết quả tương tự
Zach Posten

44

Chỉ cần xóa tất cả các dòng không có ý kiến ​​từ các tập tin. Sau đó lưu nó vào đường dẫn được cung cấp mặc định và thoát khỏi trình chỉnh sửa.

Kết quả là git sẽ không làm gì trong cuộc nổi loạn này.

Để xóa tất cả các dòng trong vim bạn có thể sử dụng

:%d|x

Sau đó lưu và bỏ.

xóa tất cả các dòng của tập tin trong Vim

Làm thế nào để thoát khỏi trình soạn thảo Vim?

VIM - nhiều lệnh trên cùng một dòng


đây không phải là trường hợp cho các cam kết hợp nhất. hãy thử thực hiện rebase tương tác để bao gồm ít nhất một cam kết hợp nhất và so sánh kết quả với trạng thái ban đầu.
Mladen B.

9

Nếu bạn đang sử dụng Notepad ++ trên Windows chẳng hạn:

CtrlAđể chọn mọi thứ, sau đó Delhoặc Backspacexóa và CtrlSlưu. Git sẽ hủy bỏ rebase nếu tập tin trống.

Bạn cũng có thể nhấn CtrlCvào dấu nhắc lệnh nơi git đang chạy để dừng lệnh rebase hiện tại. Sau đó chạy git rebase --abortđể hoàn nguyên nó.


đây là cách chung để giải quyết vấn đề này, bất kể bạn đang sử dụng vim hay bất kỳ trình soạn thảo nào khác. cảm ơn rất nhiều! :)
Mladen B.

3

Xóa tất cả văn bản trong màn hình soạn thảo văn bản của bạn, sau đó lưu tệp với đường dẫn được cung cấp mặc định.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.