अपडेट सितंबर 2015 (6 साल बाद)
Git-for-Windows (2.5.3) की अंतिम रिलीज़ में अब शामिल हैं:
कॉन्फ़िगर करके git config core.editor notepad
, उपयोगकर्ता अब notepad.exe
अपने डिफ़ॉल्ट संपादक के रूप में उपयोग कर सकते हैं ।
कॉन्फ़िगरेशन git config format.commitMessageColumns 72
को नोटपैड रैपर द्वारा उठाया जाएगा और उपयोगकर्ता द्वारा संपादित करने के बाद प्रतिबद्ध संदेश को लाइन-रैप किया जाएगा।
जोहान्स शिंडलिन द्वारा प्रतिबद्ध 69b301b देखें ( dscho
) ।
और Git 2.16 (Q1 2018) उपयोगकर्ता को यह बताने के लिए एक संदेश दिखाएगा कि वह संपादक का संपादन करते समय संपादन समाप्त होने की प्रतीक्षा कर रहा है, अगर संपादक किसी छिपी हुई खिड़की या कहीं अस्पष्ट तरीके से खुलता है और उपयोगकर्ता खो जाता है।
देखें abfb04d प्रतिबद्ध (07 दिसंबर 2017), और a64f213 प्रतिबद्ध (29 नवंबर 2017) द्वारा लार्स श्नाइडर ( larsxschneider
) ।
हेल्प-बाय: जूनियो सी हमानो ( gitster
) ।
( जूनियो सी gitster
हमानो द्वारा विलय - - में 0c69a13 , 19 दिसंबर 2017)
launch_editor()
: इंगित करें कि Git उपयोगकर्ता इनपुट के लिए प्रतीक्षा करता है
जब एक ग्राफिकल GIT_EDITOR
एक Git कमांड द्वारा खोला जाता है जो उपयोगकर्ता इनपुट के लिए खुलता है और प्रतीक्षा करता है (उदाहरण के लिए " git rebase -i
"), तो संपादक विंडो को अन्य विंडो द्वारा अस्पष्ट किया जा सकता है।
उपयोगकर्ता को मूल Git टर्मिनल विंडो पर बिना देखे भी छोड़ा जा सकता है, जिसमें यह पता चलता है कि Git के आगे बढ़ने से पहले उसे किसी अन्य विंडो के साथ सहभागिता करने की आवश्यकता है। इस उपयोगकर्ता के लिए Git लटका हुआ दिखाई देता है।
एक संदेश प्रिंट करें जो Git मूल टर्मिनल में संपादक इनपुट की प्रतीक्षा कर रहा है और संपादक के वापस आने पर इसे हटा दें, यदि टर्मिनल अंतिम पंक्ति को मिटाने का समर्थन करता है
मूल उत्तर
मैंने इसे git संस्करण 1.6.2.msysgit.0.186.gf7512 और नोटपैड ++ 5.3.1 के साथ परीक्षण किया
मैं एक एडिटर वेरिएबल सेट नहीं करना चाहता, इसलिए मैंने कोशिश की:
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"
वह हमेशा देता है:
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" %*'.
अगर मैं npp.bat को परिभाषित करता हूं:
"c:\Program Files\Notepad++\notepad++.exe" %*
और मैं टाइप करता हूं:
C:\prog\git>git config --global core.editor C:\prog\git\npp.bat
यह सिर्फ डॉस सत्र से काम करता है, लेकिन गिट शेल से नहीं ।
(ऐसा नहीं है कि core.editor कॉन्फ़िगरेशन तंत्र के साथ, इसमें " start /WAIT...
" के साथ एक स्क्रिप्ट काम नहीं करेगी, लेकिन केवल एक नया DOS फ़ाइल खोलें)
बेनेट के उत्तर में स्क्रिप्ट जोड़ने से बचने की संभावना का उल्लेख है, लेकिन सीधे सरल उद्धरणों के बीच कार्यक्रम को सीधे संदर्भित करने के लिए । नोट स्लैश की दिशा! पथ नाम में अलग फ़ोल्डर का उपयोग /
न करें \
!
git config --global core.editor \
"'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
या यदि आप 64 बिट सिस्टम में हैं:
git config --global core.editor \
"'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
लेकिन मैं एक स्क्रिप्ट का उपयोग करना पसंद करता हूं (नीचे देखें): इस तरह से मैं फिर से पंजीकरण के बिना विभिन्न रास्तों या विभिन्न विकल्पों के साथ खेल सकता हूं git config
।
वास्तविक समाधान (एक स्क्रिप्ट के साथ) यह महसूस करने के लिए था कि:
आप जो कॉन्फिगर फाइल में संदर्भित करते हैं, वह वास्तव में एक शेल ( /bin/sh
) स्क्रिप्ट है , डॉस स्क्रिप्ट नहीं।
तो क्या काम करता है:
C:\prog\git>git config --global core.editor C:/prog/git/npp.bat
साथ C:/prog/git/npp.bat
:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
या
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"
उस सेटिंग के साथ, मैं git config --global --edit
डॉस या गिट शेल git rebase -i ...
से ' ' कर सकता हूं, या मैं डॉस या गिट शैल से ' ' कर सकता हूं ।
बॉट कमांड नोटपैड ++ (इसलिए -multiInst
'विकल्प) की एक नई आवृत्ति को ट्रिगर करेगा , और जाने से पहले उस उदाहरण के बंद होने की प्रतीक्षा करें।
ध्यान दें कि मैं केवल '/' का उपयोग करता हूं, न कि \
'। और मैंने विकल्प 2 का उपयोग करके msysgit स्थापित किया। ( पर्यावरण चर में git\bin
निर्देशिका जोड़ें PATH
, लेकिन कुछ अंतर्निहित विंडोज़ टूल के बिना ओवरराइड करें)
तथ्य यह है कि नोटपैड ++ आवरण को कहा जाता है ।bat महत्वपूर्ण नहीं है।
इसे 'npp.sh' नाम देना और इसे [git]\cmd
निर्देशिका में रखना बेहतर होगा, हालांकि (या आपके PATH पर्यावरण चर द्वारा संदर्भित किसी भी निर्देशिका में)।
यह सभी देखें:
lightfire228 टिप्पणियों में जोड़ता है :
किसी भी समस्या के लिए जहां N ++ केवल एक खाली फ़ाइल खोलता है, और git आपका प्रतिबद्ध संदेश नहीं लेता है, " खाली संदेश के कारण प्रतिबद्ध घृणा " देखें : कहने के लिए अपनी .bat
या .sh
फ़ाइल बदलें :
"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>.
यह नोटपैड ++ को टेम्पर कमिट फ़ाइल खोलने के लिए कहेगा, बजाय एक रिक्त नए के।