Layak menambahkan bahwa Anda harus menggunakan Esc sebelum masuk :q!untuk keluar dari vim.
M_Merciless
Jawaban:
332
Anda memiliki dua opsi:
Berikan pesan komit kosong. Jika ini adalah komit baru dan Anda belum menyimpan pesan itu, Anda dapat menggunakan :q!(berhenti tanpa menyimpan). Jika Anda sudah menyimpan (atau Anda mengubah komit sebelumnya), cukup hapus seluruh pesan log dan simpan lagi. Ini dapat dilakukan dengan ggdG+ :wqdi Vim.
Minta editor keluar dengan kode keluar bukan nol. Di Vim, Anda dapat menggunakan :cq(keluar dengan kode kesalahan).
Perlu dicatat bahwa Anda selalu dapat mengatur ulang copy pekerjaan Anda ke keadaan sebelum komit dengannya git reset HEAD^.
Saya berharap dapat menambahkan +1 lainnya. Saya sudah di sini banyak waktu ketika amandemen saya mengambil komit yang salah.
Wyrmwood
8
Untuk menyimpulkan:
Saat membuat komit baru (yaitu git commit) berhenti menggunakan :q!.
Ketika mengubah (yaitu git commit --amend) menghapus pesan komit (hanya beberapa baris pertama yang tidak dimulai dengan #) misalnya dengan menahan v dan menggunakan tombol panah untuk memilihnya lalu menekan Hapus. Berhenti dengan :wqmenerapkan perubahan ! Jika Anda menggunakan :q!perubahan akan hilang dan pesan komit sebelumnya akan digunakan.
Saat menggunakan VIM tidak masalah dalam kedua kasus untuk berhenti dengan :cq- VIM akan berhenti dengan kode kesalahan dan komit akan dibatalkan.
:q!
untuk keluar dari vim.Jawaban:
Anda memiliki dua opsi:
Berikan pesan komit kosong. Jika ini adalah komit baru dan Anda belum menyimpan pesan itu, Anda dapat menggunakan
:q!
(berhenti tanpa menyimpan). Jika Anda sudah menyimpan (atau Anda mengubah komit sebelumnya), cukup hapus seluruh pesan log dan simpan lagi. Ini dapat dilakukan dengan ggdG+:wq
di Vim.Minta editor keluar dengan kode keluar bukan nol. Di Vim, Anda dapat menggunakan
:cq
(keluar dengan kode kesalahan).Perlu dicatat bahwa Anda selalu dapat mengatur ulang copy pekerjaan Anda ke keadaan sebelum komit dengannya
git reset HEAD^
.sumber
git reset HEAD^
meminta lebih, shell Anda dapat menafsirkan ^ sebagai kelanjutan garis. Cobagit reset "HEAD^"
,,git reset HEAD^^
ataugit reset HEAD~1
sebaliknya, per jawaban ini: stackoverflow.com/questions/14203952/git-reset-asks-more:q!
tidak berfungsi saat mengubah komit. Itu tidak memperbarui pesan komit, tetapi mengeksekusi amandemen :-(:cq
sepenuhnya membatalkan amandemen.sumber
Untuk menyimpulkan:
git commit
) berhenti menggunakan:q!
.git commit --amend
) menghapus pesan komit (hanya beberapa baris pertama yang tidak dimulai dengan #) misalnya dengan menahan v dan menggunakan tombol panah untuk memilihnya lalu menekan Hapus. Berhenti dengan:wq
menerapkan perubahan ! Jika Anda menggunakan:q!
perubahan akan hilang dan pesan komit sebelumnya akan digunakan.Saat menggunakan VIM tidak masalah dalam kedua kasus untuk berhenti dengan
:cq
- VIM akan berhenti dengan kode kesalahan dan komit akan dibatalkan.sumber