Eylül 2015 Güncellemesi (6 yıl sonra)
Git-için-Windows'un son sürümü (2.5.3) şimdi içerir:
Yapılandırarak git config core.editor notepad
, kullanıcılar artık notepad.exe
varsayılan düzenleyicileri olarak kullanabilirler .
Yapılandırma git config format.commitMessageColumns 72
not defteri sarmalayıcı tarafından alınır ve kullanıcı düzenledikten sonra tamamlama mesajını satır kaydırır.
Bkz. Taahhüt : 69b301b , Johannes Schindelin ( dscho
) .
Git 2.16 (1. Çeyrek 2018), editörün gizli bir pencereye veya belirsiz bir yere açılması ve kullanıcının kaybolması durumunda kullanıcıya bir düzenleyici oluştururken düzenlemeyi bitirmesini beklediğini bildiren bir mesaj gösterecektir.
Bkz. Taahhüt abfb04d (07 Aralık 2017) ve taahhüt a64f213 (29 Kasım 2017), Lars Schneider ( larsxschneider
) .
Yardım eden: Junio C Hamano ( gitster
) .
(Göre Birleştirilmiş - Junio Cı Hamano gitster
- içinde 0c69a13 tamamlama 2017 19 Ara)
launch_editor()
: Git'in kullanıcı girdisini beklediğini belirtin
Bir grafik GIT_EDITOR
, kullanıcı girişini (ör. " git rebase -i
") Açan ve bekleyen bir Git komutu ile oluşturulduğunda , düzenleyici penceresi diğer pencereler tarafından gizlenebilir.
Kullanıcı, Git'in devam edebilmesi için başka bir pencereyle etkileşim kurması gerektiğini fark etmeden orijinal Git terminal penceresine bakmaya bırakılabilir. Bu kullanıcıya Git asılı görünür.
Git'in orijinal terminalde editör girişini beklediğini bildiren bir mesaj yazdırın ve terminal son satırı silmeyi destekliyorsa, editör döndüğünde ondan kurtulun
Orijinal cevap
Ben sadece git sürüm 1.6.2.msysgit.0.186.gf7512 ve Notepad ++ 5.3.1 ile test ettim
Ben tercih değil Denedim nedenle, bir EDİTÖR değişkeni ayarlamak zorunda:
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"
Bu her zaman şunu verir:
C:\prog\git>git config --global --edit
"c:\Program Files\Notepad++\notepad++.exe" %*: c:\Program Files\Notepad++\notepad++.exe: command not found
error: There was a problem with the editor '"c:\Program Files\Notepad++\notepad++.exe" %*'.
Aşağıdakileri içeren bir npp.bat tanımlarsam:
"c:\Program Files\Notepad++\notepad++.exe" %*
ve yazıyorum:
C:\prog\git>git config --global core.editor C:\prog\git\npp.bat
Sadece DOS oturumundan çalışır, ancak git kabuğundan çalışmaz .
(core.editor yapılandırma mekanizmasıyla, içinde " start /WAIT...
" bulunan bir komut dosyası çalışmaz, yalnızca yeni bir DOS penceresi açar)
Bennett'in yanıtı , bir komut dosyası eklemekten kaçınma olasılığından bahsediyor, ancak basit alıntılar arasında doğrudan programın kendisine gönderme yapma olasılığından bahsediyor . Eğik çizgilerin yönüne dikkat edin! Yol adındaki klasörleri ayırmak için /
DEĞİL kullanın \
!
git config --global core.editor \
"'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Veya 64 bit sistemdeyseniz:
git config --global core.editor \
"'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Ama ben bir komut dosyası kullanmayı tercih ederim (aşağıya bakın): bu şekilde farklı yollar veya farklı seçeneklerle tekrar kayıt yapmadan oynayabilirim a git config
.
Asıl çözüm (bir komut dosyası ile) şunu fark etmektir:
config dosyasında bahsettiğiniz şey aslında/bin/sh
bir DOS komut dosyası değil, bir kabuk ( ) komut dosyasıdır.
İşe yarayan şey:
C:\prog\git>git config --global core.editor C:/prog/git/npp.bat
ile C:/prog/git/npp.bat
:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
veya
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"
Bu ayar ile git config --global --edit
DOS veya Git Shell'den yapabilirim git rebase -i ...
veya DOS veya Git Shell'den yapabilirim.
Bot komutları yeni bir notepad ++ örneğini (dolayısıyla -multiInst
'seçeneği) tetikler ve devam etmeden önce bu örneğin kapatılmasını bekler.
Sadece '/' kullandığımı unutmayın \
. Ve seçenek 2'yi kullanarak msysgit'i yükledim. ( git\bin
Dizini PATH
ortam değişkenine ekleyin , ancak bazı yerleşik Windows araçlarını geçersiz kılmadan )
Notepad ++ wrapper'ın .bat olarak adlandırılması önemli değildir.
Buna 'npp.sh' adını vermek ve [git]\cmd
dizine (veya PATH ortam değişkeniniz tarafından başvurulan herhangi bir dizine) koymak daha iyi olur .
Ayrıca bakınız:
lightfire228 ekler yorumlarda :
N ++ sadece senin taahhüt mesajı almak görmez Boş bir dosya açar ve git bir sorunu olan herkes için " durduruluyor nedeniyle boş iletiye taahhüt ": Yaptığınız değişiklik .bat
veya .sh
dosya söylemek:
"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>.
Bu notepad ++ 'a boş yeni bir dosya yerine geçici birleştirme dosyasını açmasını söyler.