Masalah dengan memasukkan pesan Git commit dengan Vim

146

OS: Windows

saya menulis

$ git commit

kemudian

"# Silakan masukkan pesan komit"

Saya menulis beberapa teks, seperti

"Validasi formulir ditambahkan"

Tekan Enter dan tidak berkomitmen. Lalu saya tekan Shift + Enter, Ctrl + Enter, Alt + Enter - masih belum berkomitmen.

Saya pikir ini masalah yang bodoh, tetapi Apa yang harus saya lakukan?

aTei
sumber
Tidak masalah. Tetapi pertanyaan Anda mungkin akan mendapatkan perhatian yang lebih baik di Super User, yang lebih sesuai dengan topik untuk pertanyaan non-pemrograman ini: superuser.com/questions/tagged/git
bzlm

Jawaban:

232

Jika VIM untuk Windows, Anda dapat melakukan hal berikut:

  • masukkan pesan Anda mengikuti pedoman yang disajikan
  • tekan Escuntuk memastikan Anda keluar dari mode sisipkan
  • lalu ketik :wqEnteratau ZZ.

Perhatikan bahwa dalam VIM sering ada beberapa cara untuk melakukan satu hal. Di sini ada sedikit perbedaan. :wqEnterselalu menulis file saat sebelum menutupnya, sementara ZZ, :xEnter, :xiEnter, :xitEnter, :exiEnterdan :exitEnterhanya menulis jika dokumen tersebut dimodifikasi .
Semua sinonim ini hanya memiliki jumlah penekanan tombol yang berbeda.

mousio
sumber
1
Ketika saya masuk :wqsaya melihat pesan berikut, ".git / COMMIT_EDITMSG" 54L, 2316C tertulis Membatalkan komitmen karena pesan komit kosong.
kanna
Pastikan Anda telah menambahkan pesan. Saat diminta ketikkan sesuatu seperti "pesan saya di sini" (Anda akan masuk ke mode --insert-- Saya berasumsi, tekan esc untuk meninggalkannya). Setelah selesai, dan keluar dari mode penyisipan, kemudian ketik 'ZZ' (
huruf
22
Kenapa, siapa yang datang dengan ini? : wq Enter atau ZZ terdengar gila.
dezman
1
yang iperintah untuk memulai memasukkan teks pesan sangat membantu. Terima kasih kepada @Matt Greer untuk yang itu. Jawaban ini bagus untuk sisa langkah.
ps2goat
47

Saya berasumsi Anda menggunakan msys git. Jika ya, editor yang muncul untuk menulis pesan komit Anda vim. Vim tidak ramah pada awalnya. Anda mungkin lebih suka beralih ke editor lain. Jika Anda ingin menggunakan editor yang berbeda, lihat jawaban ini: Bagaimana cara saya menggunakan Notepad ++ (atau lainnya) dengan msysgit?

Jika Anda ingin menggunakan vim, ketikkan iuntuk mengetikkan pesan Anda. Ketika bahagia tekan ESC. Kemudian ketik :wq, dan git kemudian akan senang.

Atau cukup ketik git commit -m "your message here"untuk melewati editor sama sekali.

Matt Greer
sumber
16
Apakah vim pernah ramah? Atau apakah orang terbiasa dengan ketidaksopanannya?
Ryan Lundy
8
vim ramah setelah Anda mengerti cara kerjanya. Ini sebenarnya sangat logis dan dipikirkan dengan baik.
Matt Greer
Jika saya ingin menggunakan karakter yang memerlukan pelolosan (mis. Apostrof) dalam pesan komit, saya selalu menggunakan editor vim karena itu jauh lebih mengganggu. Kalau tidak, saya hampir selalu hanya menulis pesan komit sebagai bagian dari perintah komit.
David DeMar
Ini bagus ketika Anda perlu mengubah pesan komit
shinzou
15

Sudahkah Anda mencoba saja: git commit -m "Pesan di sini"

Jadi dalam kasus Anda:

git commit -m "Form validation added"

Setelah Anda menambahkan file Anda tentu saja.

Tony
sumber
1
Varian Anda bagus. Tetapi saya ingin mengikuti apa yang saya tulis (google Translator)
aTei
Jangan khawatir, saya lupa bahwa ada editor setelah perintah itu. Saya jarang melakukan git commit tanpa "Pesan" -m
Tony
1

Biasanya, git committampilkan editor interaktif (di Linux, dan mungkin Cygwin, ditentukan oleh konten $EDITORvariabel lingkungan Anda ) agar Anda dapat mengedit pesan komit. Ketika Anda menyimpan dan keluar, komit selesai.

Anda harus memastikan bahwa perubahan yang Anda coba lakukan telah ditambahkan ke indeks Git; ini menentukan apa yang dilakukan. Lihat http://gitref.org/basic/ untuk detailnya.

Emil Sit
sumber
0

Anda dapat mengubah karakter komentar menjadi sesuatu selain # seperti ini:

git config --global core.commentchar "@"
Matt Spradley
sumber