Git commit di terminal membuka VIM, tetapi tidak bisa kembali ke terminal

209

Mencoba mempelajari GitHub saat ini dan melakukan tutorial penting Git ini di nettuts. Saya ada pelajaran tentang membuat komitmen.

Guru mengetik git commitdan membuka VIM sebagai editornya (saya juga ingin tahu bagaimana membuatnya terbuka di Sublime Text 2) yang dibuka di VIM dan saya menambahkan dalam 1 baris yang mengatakan ini adalah komit pertama saya dan tekan save .

Selanjutnya itu meminta saya untuk menyimpan output ke desktop, sesuatu yang tidak saya lihat di screencast-nya. Sekarang saya masih di VIM dan tidak yakin bagaimana untuk kembali ke terminal 'normal' :(

Saya tidak bisa mengetahuinya jadi saya baru saja keluar dari terminal dan meluncurkannya kembali, apakah git melakukan lagi dan memiliki beberapa pesan peringatan tentang duplikat! Tidak yakin apakah saya perlu (E)editatau (A)abort.

status git

masukkan deskripsi gambar di sini

vim

masukkan deskripsi gambar di sini

pesan ketika saya membuka kembali terminal dan melakukan git commit lagi

masukkan deskripsi gambar di sini

Leon Gaban
sumber
3
Jika Anda hanya ingin tahu cara menyimpan dan keluar dari vim, ini : wq
guido
1
masalah yang sama di sini ... begitu saya mencoba melakukan, terminal membuka beberapa jenis editor yang saya tidak bisa hentikan. Sangat menyebalkan!
Kokodoko
3
@Kokodoko ya saya hanya komit dengan git commit -m 'my message'sekarang, itu saja :) tidak perlu editor, tidak perlu menggunakan 1, hanya perlu 1 liner.
Leon Gaban
1
@LeonGaban pesan komit pendek tidak apa-apa untuk komit pertama tetapi dari mereka Anda harus mencoba mengadopsi teknik memiliki subjek pendek dan kemudian merinci apa yang sebenarnya terjadi dalam komit itu.
liamvictor
1
@LeonGaban Anda luar biasa
baydi

Jawaban:

368

Untuk menyimpan pekerjaan Anda dan keluar, tekan Esclalu :wq(untuk menulis dan q untuk berhenti).

Atau, Anda bisa menyimpan dan keluar dengan menekan Escdan kemudian:x

Untuk mengatur editor lain berjalan export EDITOR=myFavoriteEdiorpada terminal Anda, di mana myFavoriteEdiordapat vi, gedit, subl(untuk luhur) dll

Gille
sumber
7
+1 pada menjelaskan urutan perintah dan dalam proses yang menunjukkan cara beralih editor jika diperlukan (tapi serius, mengapa ada orang yang ingin menggunakan editor selain vim :)
Lieven Keersmaekers
15
NB :xSimpan dan keluar sederhana vim ini sedikit lebih cepat daripada :wq;)
Xavier
1
Atur editor secara permanen yang dapat Anda gunakan: git config --global core.editor myFavoriteEditor
Machta
2
kunci esc tidak melakukan apa pun untuk saya. Apa perintah rahasia ini, apakah ini 2016 atau 1996? Luar biasa ...
oyalhi
1
Sama sekali tidak bekerja. Ya saya memasukkan pesan komit. Vim menyebalkan.
Dave Kielpinski
40

sebenarnya bukan jawaban untuk masalah VIM tetapi Anda bisa menggunakan baris perintah untuk juga memasukkan pesan komit:

git commit -m "This is the first commit"
pkyeck
sumber
19

Anda harus kembali ke mode normal dan menyimpan pesan komit dengan baik

<Esc>:wq

atau

<Esc>:x

atau

<Esc>ZZ

The Escpengembalian kunci Anda dari insert mode untuk yang normal modus. The :wq, :xatau ZZurutan menulis perubahan dan keluar dari editor.

Letnan Keersmaekers
sumber
2
Tidak ... kunci esc tidak melakukan apa-apa. Saya terjebak di "Pemimpin cabang gabungan ..." Silakan masukkan pesan komit untuk menjelaskan mengapa penggabungan ini diperlukan.
Kokodoko
Apakah Anda memasukkan pesan komit? Apa yang terjadi ketika Anda menekan <Esc>:wq?
Lieven Keersmaekers
2
Dalam kasus saya tidak ada yang terjadi. Apa perintah rahasia ini, apakah ini 2016 atau 1996?
oyalhi
1
@ Homo-Erectus - Saya mulai menggunakan vim sekitar 4 tahun yang lalu dan satu-satunya penyesalan saya adalah saya tidak memulai lebih awal. Saya tidak menganggap itu waktu yang terbuang, Anda harus mencobanya. Memang memiliki kurva belajar curam pikiran Anda tetapi itu akan sangat berharga. Sedangkan untuk perintah, saya tidak perlu menambahkan banyak. Ketik <esc>, ketik:, ketik x dan itu seharusnya.
Lieven Keersmaekers
@oyalhi Tidak pernah terlambat untuk mulai menggunakan vim
Anatoly Yakimchuk
16

Cukup melakukan perintah "simpan dan keluar" vim :wqharus melakukan trik.

Agar Git membukanya di editor lain, Anda perlu mengubah core.editorpengaturan Git ke perintah yang menjalankan editor yang Anda inginkan.

git config --global core.editor "command to start sublime text 2"

Jani Hartikainen
sumber
4
Terima kasih atas tip pengaturan editor untuk teks yang luhur. Aku berlari ke satu masalah meskipun, saya harus menetapkan --waitbendera: git config --global core.editor "subl --wait". Ini mencegahAborting commit due to empty commit message.
Eric
16

Ini untuk menjawab pertanyaan Anda ...

Saya juga ingin tahu bagaimana membuatnya terbuka di Sublime Text 2 sebagai gantinya

Untuk Windows:

git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe'"

Periksa apakah jalurnya sublime_text.exebenar dan sesuaikan jika perlu.

Untuk Mac / Linux:

git config --global core.editor "subl -n -w"

Jika Anda mendapatkan pesan kesalahan seperti:

galat: Ada masalah dengan editor 'subl -n -w'.

Buat alias untuk subl

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl

Sekali lagi periksa apakah jalurnya cocok dengan mesin Anda.

Untuk Sublime Text cukup simpan cmd Sdan tutup jendela cmd Wuntuk kembali ke git.

mhatch
sumber