Saya mencoba Git di Windows . Saya sampai pada titik mencoba "git commit" dan saya mendapat kesalahan ini:
Terminal bodoh tetapi tidak ada VISUAL atau EDITOR yang ditentukan. Harap berikan pesan menggunakan opsi -m atau -F.
Jadi saya tahu saya perlu memiliki variabel lingkungan yang disebut EDITOR. Tidak masalah. Saya mengaturnya untuk menunjuk ke Notepad. Itu berhasil, hampir. Pesan komit default terbuka di Notepad. Tetapi Notepad tidak mendukung feed garis kosong. Saya keluar dan mendapatkan Notepad ++ , tapi saya tidak tahu bagaimana caranya agar Notepad ++ diatur %EDITOR%
sedemikian rupa sehingga berfungsi dengan Git seperti yang diharapkan.
Saya belum menikah dengan Notepad ++. Pada titik ini saya tidak keberatan editor apa yang saya gunakan. Saya hanya ingin dapat mengetik pesan komit di editor daripada baris perintah (dengan -m
).
Anda yang menggunakan Git di Windows: Alat apa yang Anda gunakan untuk mengedit pesan komit Anda, dan apa yang harus Anda lakukan untuk membuatnya berfungsi?
git config core.editor notepad
sekarang sudah cukup. Lihat jawaban saya yang diperbarui di bawah ini .Jawaban:
Pembaruan September 2015 (6 tahun kemudian)
The rilis terakhir dari git-untuk-windows (2.5.3) sekarang termasuk:
Lihat commit 69b301b oleh Johannes Schindelin (
dscho
) .Dan Git 2.16 (Q1 2018) akan menampilkan pesan untuk memberi tahu pengguna bahwa ia menunggu pengguna untuk menyelesaikan pengeditan saat menelurkan editor, jika editor membuka ke jendela tersembunyi atau di suatu tempat yang tidak jelas dan pengguna tersesat.
Lihat komit abfb04d (07 Des 2017), dan komit a64f213 (29 Nov 2017) oleh Lars Schneider (
larsxschneider
) .Dibantu-oleh: Junio C Hamano (
gitster
) .(Digabung oleh Junio C Hamano -
gitster
- dalam komit 0c69a13 , 19 Des 2017)Jawaban asli
Saya baru saja mengujinya dengan git versi 1.6.2.msysgit.0.186.gf7512 dan Notepad ++ 5.3.1
Saya lebih suka tidak harus menetapkan variabel EDITOR, jadi saya mencoba:
Itu selalu memberi:
Jika saya mendefinisikan npp.bat termasuk:
dan saya mengetik:
Itu hanya bekerja dari sesi DOS, tetapi tidak dari shell git .
(bukan dengan mekanisme konfigurasi core.editor, skrip dengan "
start /WAIT...
" di dalamnya tidak akan berfungsi, tetapi hanya membuka jendela DOS baru)Jawaban Bennett menyebutkan kemungkinan untuk menghindari menambahkan skrip, tetapi untuk merujuk langsung program itu sendiri di antara kutipan sederhana . Perhatikan arah garis miring! Gunakan
/
BUKAN\
untuk memisahkan folder dalam nama jalur!Atau jika Anda berada di sistem 64 bit:
Tapi saya lebih suka menggunakan skrip (lihat di bawah): dengan begitu saya bisa bermain dengan jalur yang berbeda atau opsi yang berbeda tanpa harus mendaftar lagi a
git config
.Solusi aktual (dengan skrip) adalah untuk menyadari bahwa:
apa yang Anda rujuk dalam file konfigurasi sebenarnya adalah
/bin/sh
skrip shell ( ) , bukan skrip DOS.Jadi apa yang berhasil adalah:
dengan
C:/prog/git/npp.bat
:atau
Dengan pengaturan itu, saya dapat melakukan '
git config --global --edit
' dari DOS atau Git Shell, atau saya dapat melakukan 'git rebase -i ...
' dari DOS atau Git Shell.Perintah bot akan memicu instance baru notepad ++ (karenanya
-multiInst
opsi '), dan menunggu instance itu ditutup sebelum melanjutkan.Perhatikan bahwa saya hanya menggunakan '/', bukan
\
'. Dan saya menginstal msysgit menggunakan opsi 2. (Tambahkangit\bin
direktori kePATH
variabel lingkungan, tetapi tanpa mengesampingkan beberapa alat windows built-in)Fakta bahwa pembungkus notepad ++ disebut .bat tidak penting.
Akan lebih baik untuk menamainya 'npp.sh' dan memasukkannya ke
[git]\cmd
direktori (atau di direktori mana pun yang dirujuk oleh variabel lingkungan PATH Anda).Lihat juga:
lightfire228 menambahkan dalam komentar :
sumber
git config
pengaturan saya .dir /X
padanan yang dipersingkat : "PROGRA~2
" untuk "Program Files (x86)
", yang merupakan kebiasaan yang baik untuk digunakan saat menggunakan alat yang kompatibel dengan lintas platform di Windows, yang memungkinkan Anda untuk menghancurkan spasi.Membangun jawaban Darren , untuk menggunakan Notepad ++ Anda cukup melakukan ini (semuanya dalam satu baris):
Jelas,
C:/Program Files/Notepad++/notepad++.exe
bagian tersebut harus menjadi jalur ke Notepad ++ yang dapat dieksekusi di sistem Anda. Sebagai contoh, mungkin sajaC:/Program Files (x86)/Notepad++/notepad++.exe
.Ini berfungsi seperti pesona bagi saya.
sumber
Bagaimanapun, saya baru saja bermain-main dengan ini dan menemukan hal berikut ini berfungsi dengan baik untuk saya:
Saya tidak berpikir CMD suka tanda kutip tunggal sehingga Anda harus menggunakan tanda kutip ganda "untuk menentukan argumen string ruang yang tertanam".
Cygwin (yang saya percaya adalah platform yang mendasari Git's Bash) di sisi lain suka keduanya
'
dan"
; Anda dapat menentukan jalur seperti CMD, menggunakan/
bukan\
, selama string dikutip yaitu dalam contoh ini, menggunakan tanda kutip tunggal.The
-m
menimpa / menunjukkan penggunaan beberapa editor dan tidak ada kebutuhan untuk%*
tertempel di akhir.sumber
git config --global core.editor "'C:\Program Files\Sublime Text 3\sublime_text.exe' -m"
bekerja seperti pesona bagi saya.editor = notepad
Sunting: Setelah memperbarui ke Vim 7.3, saya sampai pada kesimpulan bahwa cara terbersih dan termudah untuk melakukan ini adalah:
Tambahkan folder utama Vim ke jalur Anda (klik kanan pada My Computer → Properties → Advanced → Variabel Lingkungan )
Jalankan ini:
Jika Anda melakukannya dengan cara ini, maka saya cukup yakin itu akan bekerja dengan Cygwin juga.
Jawaban asli:
Bahkan dengan beberapa jawaban yang berhubungan dengan Vim, saya mengalami kesulitan untuk menjalankannya dengan gVim di Windows (walaupun tidak menggunakan file batch atau% EDITOR% atau Cygwin).
Apa yang akhirnya saya dapatkan adalah bagus dan bersih, dan menarik dari beberapa solusi di sini:
Salah satu yang perlu saya lakukan adalah ini bukan backslash bergaya Windows. Itu adalah garis miring ke depan yang normal.
sumber
Program Files(x86)
, maka Anda perlu mengubah path dengan jelas.Notepad ++ berfungsi dengan baik, meskipun saya memilih untuk tetap menggunakan Notepad, -m, atau bahkan kadang-kadang "edit."
Masalah yang Anda temui menggunakan Notepad ++ terkait dengan bagaimana Git meluncurkan editor yang dapat dieksekusi. Solusi saya untuk ini adalah mengatur variabel lingkungan
EDITOR
ke file batch, daripada executable editor yang sebenarnya, yang melakukan hal berikut:/WAIT
memberitahu sesi baris perintah untuk berhenti sampai aplikasi keluar, sehingga Anda akan dapat mengedit sesuka hati Anda sementara Git dengan senang hati menunggu Anda. % * meneruskan semua argumen ke file batch ke Notepad ++.sumber
WordPad !
Saya senang menggunakan Vim, tetapi karena saya mencoba memperkenalkan Git ke perusahaan saya menginginkan sesuatu yang kita semua miliki, dan menemukan bahwa WordPad tampaknya berfungsi dengan baik (yaitu Git menunggu sampai Anda selesai mengedit dan menutup. jendela).
Itu menggunakan Git Bash di msysgit; Saya belum mencoba dari command prompt Windows (jika ada bedanya).
sumber
Saya juga menggunakan Cygwin pada Windows, tetapi dengan gVim (sebagai lawan dari terminal berbasis Vim ).
Untuk membuat ini berhasil, saya telah melakukan yang berikut:
git_editor.bat
) yang berisi yang berikut:"C:/Program Files/Vim/vim72/gvim.exe" --nofork "%*"
git_editor.bat
di dalam sayaPATH
.GIT_EDITOR=git_editor.bat
Dengan ini
git commit
,, dll. Dengan benar akan memanggil gVim yang dapat dieksekusi.CATATAN 1:
--nofork
Opsi untuk gVim memastikan bahwa itu memblokir sampai pesan komit telah ditulis.CATATAN 2: Kutipan di sekitar jalur ke gVim diperlukan jika Anda memiliki spasi di jalur.
CATATAN 3: Kutipan di sekitar "% *" diperlukan untuk berjaga-jaga jika Git melewati jalur file dengan spasi.
sumber
Berkat komunitas Stack Overflow ... dan sedikit riset saya bisa mendapatkan editor favorit saya, EditPad Pro , untuk bekerja sebagai editor inti dengan msysgit 1.7.5.GIT dan TortoiseGit v1.7.3.0 melalui Windows XP SP3. ..
Mengikuti saran di atas, saya menambahkan path ke skrip Bash untuk editor kode ...
Namun, setelah beberapa upaya gagal pada solusi yang disebutkan di atas ... Saya akhirnya bisa mendapatkan ini berfungsi. Per dokumentasi EditPad Pro, menambahkan bendera '/ berita baru' akan memungkinkan shell untuk menunggu input editor ...
Bendera ' / berita baru ' adalah kunci dalam kasus saya ...
sumber
/newinstance
memiliki satu garis miring yang persis sama. Ini cukup normal untuk aplikasi Windows. Jika Anda menggunakan EditPad dari shell UNIX maka Anda harus menggunakan mekanisme apa pun yang ditawarkan shell Anda untuk menghindari garis miring sehingga tidak melihat sakelar sebagai jalur absolut dan memberikan garis miring ke depan secara literal ke baris perintah EditPad./wait
sakelar pada baris perintah EditPad. Anda dapat menggunakan/wait
dengan atau tanpa/newinstance
untuk mengontrol apakah jendela EditPad baru harus dibuka atau apakah jendela yang ada harus digunakan kembali. Proses yang diluncurkan oleh skrip Anda akan menunggu file untuk ditutup terlepas dari apakah sebuah jendela dibuat atau digunakan kembali. EditPad Pro 6 dan sebelumnya tidak mendukung/wait
./wait
tipnya, Pak ... :)[core]
bagian .gitconfig untuk memasukkan bariseditor = "'C:/Program Files/Just Great Software/EditPad Lite 7/EditPadLite7.exe' //wait //newinstance"
.Untuk Atom bisa Anda lakukan
dan serupa untuk Visual Studio Code
yang akan membuka jendela Atom atau Visual Studio Code untuk Anda lakukan melalui,
atau untuk Teks Sublim :
sumber
Edit file .gitconfig di c: \ Users \ YourUser folder dan tambahkan:
sumber
Ini adalah salah satu gejala dari masalah yang lebih besar. Khususnya Anda memiliki pengaturan sesuatu
TERM=dumb
. Hal lain yang tidak berfungsi dengan baik adalahless
perintah yang mengatakan Anda tidak memiliki terminal yang berfungsi penuh.Sepertinya ini paling sering disebabkan oleh memiliki JANGKA diatur ke sesuatu dalam variabel lingkungan Windows global Anda. Bagi saya, masalah muncul ketika saya menginstal Strawberry Perl beberapa informasi tentang ini pada bug msysgit untuk masalah ini serta beberapa solusi.
Solusi pertama adalah memperbaikinya di ~ / .bashrc Anda dengan menambahkan:
Anda dapat melakukan ini dari prompt Git Bash seperti:
Solusi lain, yang pada akhirnya adalah apa yang saya lakukan karena saya tidak peduli tentang alasan Strawberry Perl untuk menambahkan
TERM=dumb
ke pengaturan lingkungan saya, adalah pergi dan menghapusTERM=dumb
seperti yang diarahkan dalam komentar ini pada laporan bug msysgit .Demikian pula jika Anda menggunakan Strawberry Perl dan peduli tentang klien CPAN atau sesuatu seperti itu, Anda dapat membiarkannya
TERM=dumb
sendiri dan menggunakannyaunset TERM
dalam file ~ / .bashrc Anda yang akan memiliki efek yang mirip dengan pengaturan istilah eksplisit seperti di atas.Tentu saja, semua solusi lain sudah benar yang dapat Anda gunakan
git config --global core.editor $MYFAVORITEEDITOR
untuk memastikan bahwa Git menggunakan editor favorit Anda ketika perlu meluncurkan satu untuk Anda.sumber
Vim / gVim bekerja dengan baik untuk saya.
sumber
Saya memiliki PortableGit 1.6 bekerja dengan baik, tetapi setelah upgrade ke rilis PortableGit 1.7 Windows, saya punya masalah. Beberapa perintah Git membuka Notepad ++. Exe baik-baik saja, tetapi beberapa tidak, terutama Git rebase berperilaku berbeda.
Masalahnya adalah beberapa perintah menjalankan proses cmd Windows dan beberapa menggunakan proses cmd Unix. Saya ingin memberikan atribut startup ke editor Notepad ++, jadi saya harus memiliki skrip yang disesuaikan. Solusi saya adalah ini.
Buat skrip untuk menjalankan editor teks yang sesuai. Scriptnya terlihat aneh, tetapi menangani variasi Windows dan Unix.
c: /PortableGit/cmd/git-editor.bat
Setel variabel core.editor global
Script disimpan ke folder git / cmd, jadi sudah ada di jalur gitconsole. Ini wajib karena jalur penuh mungkin tidak berfungsi dengan baik.
Sekarang saya dapat menjalankan git commit -a dan git rebase -i perintah master . Cobalah jika Anda memiliki masalah dalam alat Git Windows.
sumber
Saya menggunakan Git pada banyak platform, dan saya suka menggunakan pengaturan Git yang sama pada semuanya. (Sebenarnya, saya memiliki semua file konfigurasi saya di bawah kontrol rilis dengan Git, dan menempatkan klon repositori Git pada setiap mesin.) Solusi yang saya buat adalah ini:
Saya mengatur editor saya ke giteditor
Lalu saya membuat tautan simbolis yang disebut giteditor yang ada di PATH saya . (Saya memiliki direktori tempat sampah pribadi , tetapi di mana pun di PATH berfungsi.) Tautan itu menunjuk ke editor pilihan saya saat ini. Pada mesin yang berbeda dan platform yang berbeda, saya menggunakan editor yang berbeda, jadi ini berarti saya tidak perlu mengubah konfigurasi universal Git saya ( .gitconfig ), hanya tautan yang ditunjuk oleh giteditor .
Tautan simbolik ditangani oleh setiap sistem operasi yang saya kenal, meskipun mereka mungkin menggunakan perintah yang berbeda. Untuk Linux, Anda menggunakan ln -s . Untuk Windows, Anda menggunakan cmd built-in mklink . Mereka memiliki sintaks yang berbeda (yang harus Anda perhatikan), tetapi semuanya bekerja dengan cara yang sama, sungguh.
sumber
error: cannot spawn giteditor: No such file or directory
Berdasarkan saran VonC , ini berhasil untuk saya (membuat saya gila):
Menghilangkan
-wait
dapat menyebabkan masalah, terutama jika Anda bekerja dengan Gerrit dan mengubah id yang harus disalin secara manual ke bagian bawah pesan komit Anda.sumber
Saya perlu melakukan kedua hal berikut untuk membuat Git meluncurkan Notepad ++ di Windows:
Tambahkan yang berikut ini ke .gitconfig:
Ubah pintasan untuk meluncurkan shell Git Bash untuk dijalankan sebagai administrator, lalu gunakan itu untuk meluncurkan shell Git Bash. Saya menduga entri menu konteks "Git Bash di sini" tidak meluncurkan Notepad ++ dengan izin yang diperlukan.
Setelah melakukan kedua hal di atas, itu berhasil.
sumber
Saya menggunakan Cygwin di Windows, jadi saya menggunakan:
Ini
-nw
untukno-windows
, yaitu memberitahu Emacs untuk tidak mencoba dan menggunakan X Window .Pengikat kunci Emacs tidak berfungsi untuk saya dari shell Windows, jadi saya hanya akan menggunakan ini dari shell Cygwin ... ( rxvt disarankan.)
sumber
Ini adalah pengaturan saya untuk menggunakan Geany sebagai editor untuk Git:
dengan konten berikut di
geany.bat
:Ia bekerja di konsol DOS dan msysgit.
sumber
Sepertinya Git tidak akan menemukan editor jika ada spasi di path. Jadi, Anda harus meletakkan file batch yang disebutkan dalam jawaban Patrick ke jalur non-spasi putih.
sumber
Saya kesulitan membuat Git bekerja sama dengan WordPad , Komodo Edit, dan hampir semua editor lain yang saya berikan. Paling terbuka untuk diedit, tetapi Git jelas tidak menunggu sampai save / close terjadi.
Sebagai penopang, saya baru saja melakukannya
untuk menjaga hal-hal bergerak. Ini cenderung menjaga pesan komit saya sedikit lebih pendek dari seharusnya, tetapi jelas ada beberapa pekerjaan yang harus dilakukan pada Git versi Windows.
GitGUI juga tidak terlalu buruk. Dibutuhkan sedikit orientasi, tetapi setelah itu, ia bekerja dengan cukup baik.
sumber
Saya lebih suka menggunakan Emacs. Mengaturnya bisa sedikit rumit.
c:\emacs
.c:\emacs\bin\addpm.exe
. Anda perlu mengklik kanan dan "Jalankan sebagai Administrator" jika Anda menggunakan Windows Vista atau lebih tinggi. Ini akan menempatkan executable di jalur Anda.(server-start)
suatu tempat di.emacs
file Anda . Lihat FAQ Windows Emacs untuk saran tentang tempat menyimpan.emacs
file Anda .git config --global core.editor emacsclientw
Git sekarang akan membuka file dalam proses Emacs yang ada. Anda harus menjalankan proses yang ada secara manual dari
c:\emacs\bin\runemacs.exe
.sumber
Saya berhasil membuat versi lingkungan bekerja dengan mengatur variabel EDITOR menggunakan tanda kutip dan
/
:sumber
Saya baru saja mengalami masalah yang sama dan menemukan solusi yang berbeda. Saya mendapatkan
Saya punya
VISUAL=ec
, dan file batch dipanggilec.bat
di jalur saya yang berisi satu baris:Ini memungkinkan saya mengedit file dari baris perintah dengan
ec <filename>
, dan memilikiVISUAL
set berarti sebagian besar program unixy mengambilnya juga. Git tampaknya untuk mencari jalan yang berbeda untuk perintah saya yang lain meskipun - ketika aku melihat sebuahgit commit
di Proses Monitor saya melihat terlihat di setiap folder pada jalur untukec
dan untukec.exe
, tetapi tidak untukec.bat
. Saya menambahkan variabel lingkungan lain (GIT_EDITOR=ec.bat
) dan semuanya baik-baik saja.sumber
Saya menggunakan GitHub untuk Windows yang merupakan pilihan visual yang bagus. Tapi saya juga lebih suka baris perintah, jadi untuk membuatnya bekerja ketika saya membuka repositori di shell Git saya hanya mengatur yang berikut:
bagus sekali.
sumber
Ini berfungsi untuk PowerShell dan cmder 1.2 (bila digunakan dengan PowerShell). Dalam file
~/.gitconfig
:Bagaimana saya bisa menjadikan Sublime Text editor default untuk Git?
sumber
Saya menemukan solusi sederhana yang diposting di sini - meskipun mungkin ada kesalahan di jalur di mana Anda harus menyalin file "subl" yang diberikan oleh penulis.
Saya menjalankan Windows 7 x64, dan saya harus meletakkan file "subl" di
/Git/cmd/
folder saya untuk membuatnya berfungsi.Ini bekerja seperti pesona.
sumber
Atom dan Windows 10
Saya mengetik ini di Git Bash:
Catatan: Saya mengubah semua
\
untuk/
. Saya membuat .bashrc di direktori home saya dan digunakan/
untuk mengatur direktori home saya dan itu berhasil, jadi saya berasumsi/
akan menjadi cara untuk pergi.editor atom git git-bash Windows 10
sumber
Inilah solusi dengan Cygwin:
Jika tidak ada jalur, tidak ada jalur
Jika jalur kosong, lewati jalur kosong
Jika path tidak kosong, konversikan ke format Windows.
Lalu saya mengatur variabel-variabel ini:
EDITOR memungkinkan skrip bekerja dengan Git
GIT_EDITOR memungkinkan skrip bekerja dengan perintah Hub
Sumber
sumber
Ini berfungsi untuk saya menggunakan Cygwin dan TextPad 6 (EDIT: ini juga bekerja dengan TextPad 5 selama Anda membuat perubahan yang jelas pada skrip), dan mungkin model tersebut dapat digunakan untuk editor lain juga:
File
~/.gitconfig
:File
~/script/textpad.sh
:Satu garis ini juga berfungsi:
File
~/script/textpad.sh
(opsi 2):sumber
Ini bekerja untuk saya:
Itu dia!
CATATAN: Sublime Text 3 adalah editor yang saya gunakan untuk contoh ini.
sumber