Cara membatalkan git rebase dari dalam vim selama pengeditan interaktif

143

Saat saya melakukan rebase interaktif, mis

git rebase -i HEAD~3

editor interaktif rebase (vim dalam kasus saya) terbuka untuk memungkinkan saya mengedit komit ke rebase

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

Jika sekarang saya memutuskan bahwa saya ingin membatalkan rebase dan berhenti vim menggunakan :qrebase dimulai. Saya menggunakan versi git 1.9.0.msysgit.0di windows.

Tentu saya bisa menghapus semua pickbaris, tetapi mungkin banyak yang harus dilakukan jika saya membuat ulang sejarah yang lebih panjang. Apakah ada cara lain?

Bagaimana saya bisa keluar dari editor interaktif rebase (vim) dan membatalkan rebase?

René Link
sumber
Apakah Anda lebih suka menggunakan editor lain, seperti Notepad? Jika demikian, saya punya solusi untuk itu
Steven Penny
5
git rebase --abort
vanduc1102
@ vanduc1102 Berfungsi untuk saya, semoga jawabannya!
C Bauer

Jawaban:

264

Jika Anda keluar dari editor dengan kode kesalahan, rebase akan dibatalkan.

Untuk keluar dengan kode kesalahan pada vim, lakukan

:cq

Lihat di sini dan vimdoc di sini .

Telmo Costa
sumber
7
Lebih sedikit mengetik, hasil yang sama
Zach Posten
44

Hapus saja semua baris yang bukan komentar dari file. Kemudian simpan ke jalur yang disediakan default dan keluar dari editor.

Akibatnya git tidak akan melakukan apa pun dalam rebase ini.

Untuk menghapus semua baris di vim dapat Anda gunakan

:%d|x

Kemudian simpan dan keluar.

hapus semua baris file di Vim

Bagaimana cara keluar dari editor Vim?

VIM - beberapa perintah pada baris yang sama

Steven Penny
sumber
ini tidak terjadi untuk komit gabungan. coba lakukan rebase interaktif untuk menyertakan setidaknya satu komit gabungan dan bandingkan hasilnya dengan keadaan asli.
Mladen B.
9

Jika Anda menggunakan Notepad ++ di Windows misalnya:

CtrlAuntuk memilih semuanya, lalu Delatau Backspaceuntuk menghapus dan CtrlSmenyimpan. Git akan membatalkan rebase jika file tersebut kosong.

Anda juga dapat menekan CtrlCdi command prompt di mana git berjalan untuk menghentikan perintah rebase saat ini. Kemudian jalankan git rebase --abortuntuk mengembalikannya.

CodeManX
sumber
ini adalah cara umum untuk mengatasi masalah ini, tidak peduli apakah Anda menggunakan vim atau editor lainnya. Terima kasih banyak! :)
Mladen B.
3

Hapus semua teks di layar editor teks Anda, lalu simpan file dengan jalur default yang disediakan.

Mcandre
sumber