windows - विंडोज़ पर गिट के साथ काम करने के लिए मैं एक संपादक कैसे स्थापित कर सकता हूं?




git cygwin (20)

मैं विंडोज़ पर गिट की कोशिश कर रहा हूं। मैं "गिट प्रतिबद्ध" की कोशिश करने के बिंदु पर आया और मुझे यह त्रुटि मिली:

टर्मिनल गूंगा है लेकिन कोई दृश्य नहीं और न ही संपादक परिभाषित किया गया है। कृपया या तो एम या एफ विकल्प का उपयोग कर संदेश की आपूर्ति करें।

तो मुझे लगा कि मुझे EDITOR नामक एक पर्यावरण चर होना चाहिए। कोई बात नहीं। मैंने इसे नोटपैड को इंगित करने के लिए सेट किया। यह लगभग काम किया। नोटपैड में डिफ़ॉल्ट प्रतिबद्ध संदेश खुलता है। लेकिन नोटपैड नंगे लाइन फीड का समर्थन नहीं करता है। मैं बाहर गया और Notepad++ मिला, लेकिन मुझे यह नहीं पता कि नोटपैड ++ को %EDITOR% रूप में कैसे सेट किया जाए, इस तरह से यह गिट के साथ काम करता है।

मैं नोटपैड ++ से शादी नहीं कर रहा हूं। इस बिंदु पर मुझे कोई फर्क नहीं पड़ता कि मैं किस संपादक का उपयोग करता हूं। मैं सिर्फ कमांड लाइन (with -m ) के बजाय एक संपादक में प्रतिबद्ध संदेश टाइप करने में सक्षम होना चाहता हूं।

विंडोज़ पर गिट का उपयोग करने वाले आप में से: आप अपने प्रतिबद्ध संदेशों को संपादित करने के लिए किस टूल का उपयोग करते हैं, और इसे काम करने के लिए आपको क्या करना है?


एटीओएम और विंडोज 10

  1. डेस्कटॉप पर एटम आइकन पर राइट क्लिक किया और गुणों पर क्लिक किया।
  2. "प्रारंभ करें" स्थान पथ की प्रतिलिपि बनाई गई
  3. विंडोज एक्सप्लोरर के साथ वहां देखा और "atom.exe" पाया।
  4. गिट बैश में इसे टाइप किया गया:

    git config --global core.editor C:/Users/YOURNAMEUSER/AppData/Local/atom/app-1.7.4/atom.exe"

नोट: मैंने सभी के लिए \ बदल दिया है। मैंने अपनी होम निर्देशिका में एक .bashrc बनाया और अपनी होम निर्देशिका सेट करने के लिए इस्तेमाल किया / यह काम किया, इसलिए मुझे लगता है कि / का तरीका होगा।

atom-editor git git-bash windows-10


एक दूरस्थ घुड़सवार होमड्राइव (सांबा शेयर, एनएफएस, ...) का उपयोग करते समय आपके ~/.git फ़ोल्डर को सभी प्रणालियों को एक्रोस साझा किया जाता है जो कई समस्याओं का कारण बन सकता है। इस प्रकार मैं सही सिस्टम के लिए सही संपादक निर्धारित करने के लिए एक स्क्रिप्ट पसंद करता हूं:

#!/usr/bin/perl
# Detect which system I'm on and choose the right editor
$unamea = `uname -a`;
if($unamea =~ /mingw/i){
    if($unamea =~ /devsystem/i){#Check hostname
        exec('C:\Program Files (x86)\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
    }
    if($unamea =~ /testsystem/i){
        exec('C:\Program Files\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
    }
}
$MCEDIT=`which mcedit`;
if($MCEDIT =~ /mcedit/){
    exec($MCEDIT, @ARGV);
}
$NANO=`which nano`;
if($NANO =~ /nano/){
    exec($NANO, @ARGV);
}
die "You don't have a suitable editor!\n";

कोई एक सादा खोल स्क्रिप्ट पर विचार कर सकता है लेकिन मैंने पर्ल का उपयोग किया है क्योंकि पर्ल को msysgit und के साथ भेज दिया गया है, आपकी यूनिक्सॉइड सिस्टम भी एक प्रदान करेगा। स्क्रिप्ट को /home/username/bin में .bashrc , जिसे .bashrc या .profile में PATH में जोड़ा जाना चाहिए। एक बार git config --global core.editor giteditor.pl साथ जोड़ा गया git config --global core.editor giteditor.pl आपके पास सही संपादक है, जहां भी आप हैं।


ऐसा लगता है जैसे पथ में रिक्त स्थान होने पर गिट संपादक को नहीं मिलेगा। तो आपको पैट्रिक के जवाब में उल्लिखित बैच फ़ाइल को गैर-व्हाइटस्पेस पथ में रखना होगा।


गिट के लिए संपादक के रूप में Geany का उपयोग करने के लिए यह मेरा सेटअप है:

git config --global core.editor C:/path/to/geany.bat

geany.bat में निम्न सामग्री के साथ:

#!/bin/sh
"C:\Program Files\Geany\bin\Geany.exe" --new-instance "$*"

यह डॉस कंसोल और msysgit दोनों में काम करता है।


नोटपैड ++ ठीक काम करता है, हालांकि मैं नोटपैड, -एम, या कभी-कभी अंतर्निहित "संपादन" के साथ चिपकने का विकल्प चुनता हूं।

नोटपैड ++ का उपयोग कर आप जिस समस्या का सामना कर रहे हैं वह इस बात से संबंधित है कि गिट संपादक को निष्पादन योग्य कैसे लॉन्च कर रहा है। इसका मेरा समाधान संपादक को निष्पादन योग्य के बजाए बैच फ़ाइल में सेट करना है, जो निम्न कार्य करता है:

start /WAIT "E:\PortableApps\Notepad++Portable\Notepad++Portable.exe" %*

/ WAIT कमांड लाइन सत्र को तब तक रोकता है जब तक एप्लिकेशन बाहर निकलता है, इस प्रकार आप अपने दिल की सामग्री में संपादित करने में सक्षम होंगे, जबकि गिट खुशी से आपके लिए इंतजार कर रहा है। % * बैच फ़ाइल में नोटपैड ++ के माध्यम से सभी तर्कों को पास करता है।

c:\src>echo %EDITOR%
c:\tools\runeditor.bat

पुराने धागे को पुन: स्थापित करना, लेकिन मुझे here पोस्ट किया गया एक सुंदर सरल समाधान मिला - हालांकि उस पथ में कोई गलती हो सकती है जिसमें आपको लेखक द्वारा दी गई "subl" फ़ाइल पर प्रतिलिपि बनाना है। मैं विन 7 x64 चला रहा हूं और इसे काम करने के लिए मुझे अपने /Git/cmd/ सेमीडी /Git/cmd/ फ़ोल्डर में "सब्बल" फ़ाइल डालना पड़ा। यह हालांकि एक आकर्षण की तरह काम करता है।


मुझे गिटप को वर्डपैड, कॉमोडोएडिट और मेरे द्वारा प्रदान किए जाने वाले हर दूसरे संपादक के साथ सहयोग करने में कठिनाई हुई है। संपादन के लिए सबसे अधिक खुला है, लेकिन गिट स्पष्ट रूप से सहेजने / बंद होने की प्रतीक्षा नहीं करता है।

एक कचरा के रूप में, मैं बस या तो कर रहा हूँ

git commit -m "Fixed the LoadAll method"

चीजों को आगे बढ़ने के लिए। मेरे प्रतिबद्ध संदेशों को शायद थोड़ा छोटा होना चाहिए, लेकिन जाहिर है कि गिट के विंडोज संस्करण पर कुछ काम किया जाना है।

गिटगुई भी बुरा नहीं है। इसमें थोड़ा सा अभिविन्यास होता है, लेकिन उसके बाद, यह काफी अच्छी तरह से काम करता है।


मेरे पास पोर्टेबलगिट 1.6 काम कर रहा था लेकिन पोर्टेबल गिट -17 विंडोज़ रिलीज में अपग्रेड करने के बाद समस्याएं थीं। कुछ गिट कमांड नोटपैड ++ खोलते हैं। ठीक है लेकिन कुछ नहीं करते हैं, विशेष रूप से गिट रिबेस अलग-अलग व्यवहार करता है।

समस्या कुछ कमांड विंडोज़ cmd प्रक्रिया चलाने के लिए कुछ यूनिक्स cmd प्रक्रिया का उपयोग करें। मैं नोटपैड ++ संपादक को स्टार्टअप विशेषताओं को देना चाहता हूं इसलिए एक अनुकूलित स्क्रिप्ट प्राप्त करने की आवश्यकता है। मेरा समाधान यह है।

1) उपयुक्त टेक्स्ट एडिटर चलाने के लिए एक स्क्रिप्ट बनाएं। स्क्रिप्ट अजीब लगती है लेकिन दोनों विंडोज़ और यूनिक्स भिन्नता को संभालती है। c: /PortableGit/cmd/git-editor.bat

#!/bin/sh
#open a new instance

function doUnix() {
  "c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar $*
  exit
}

doUnix $*

:WINCALL
"c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar %*

2) सेट करें global core.editor variable Script को गिट / cmd फ़ोल्डर में सहेजा गया था, इसलिए यह पहले से ही एक गिटकॉलोल पथ में है, यह अनिवार्य है क्योंकि पूर्ण पथ ठीक से काम नहीं कर सकता है।

git config --global core.editor "git-editor.bat"

अब मैं गिट प्रतिबद्ध-ए और गिट रिबेस -आई मास्टर कमांड चला सकता हूं। अगर आपको गिट विंडोज़ टूल में समस्या है तो इसे आज़माएं।


मैं उद्धरण चिह्न का उपयोग करके EDITOR चर सेट करके पर्यावरण संस्करण प्राप्त करने में कामयाब रहा / और:

EDITOR="c:/Program Files (x86)/Notepad++/notepad++.exe"

मैं कई प्लेटफार्मों पर गिट का उपयोग करता हूं, और मैं उन सभी पर एक ही गिट सेटिंग्स का उपयोग करना पसंद करता हूं। (वास्तव में, मेरे पास सभी कॉन्फ़िगरेशन फ़ाइलों को गिट के साथ रिलीज कंट्रोल के तहत है, और प्रत्येक मशीन पर एक गिट रिपोजिटरी क्लोन डालें।) जिस समाधान के साथ मैं आया था वह यह है:

मैंने अपने संपादक को गिटिटिटर पर सेट किया

git config --global core.editor giteditor

फिर मैं गिटिटिटर नामक एक प्रतीकात्मक लिंक बनाता हूं जो मेरे पथ में है । (मेरे पास व्यक्तिगत बिन निर्देशिका है, लेकिन पैथ में कहीं भी काम करता है।) वह लिंक मेरे वर्तमान संपादक के लिए इंगित करता है। विभिन्न मशीनों और विभिन्न प्लेटफार्मों पर, मैं विभिन्न संपादकों का उपयोग करता हूं, इसलिए इसका मतलब है कि मुझे अपनी सार्वभौमिक गिट कॉन्फ़िगरेशन ( .gitconfig ) को बदलने की ज़रूरत नहीं है, केवल वह लिंक जो गिटिटर इंगित करता है।

प्रतीकात्मक लिंक मुझे हर ऑपरेटिंग सिस्टम द्वारा संभाला जाता है, हालांकि वे विभिन्न आदेशों का उपयोग कर सकते हैं। लिनक्स के लिए, आप एलएन-एस का उपयोग करते हैं। विंडोज के लिए, आप cmd अंतर्निहित एमकेलिंक का उपयोग करते हैं। उनके पास अलग-अलग वाक्यविन्यास होते हैं (जिन्हें आप देखना चाहिए), लेकिन यह सब वास्तव में वैसे ही काम करता है।


मैं विंडोज के लिए गिटहब का उपयोग कर रहा हूं जो एक अच्छा दृश्य विकल्प है। लेकिन मैं कमांड लाइन भी पसंद करता हूं, इसलिए जब मैं गिट खोल में रेपो खोलता हूं तो इसे काम करने के लिए मैंने बस निम्न सेट किया है:

git config --global core.editor vim

जो महान काम करता है।


मैं विंडोज पर सिगविन का भी उपयोग करता हूं, लेकिन gvim साथ (टर्मिनल-आधारित vim विपरीत)।

यह काम करने के लिए, मैंने निम्नलिखित किया है:

  1. एक लाइन बैच फ़ाइल git_editor.bat गई (नाम git_editor.bat ) जिसमें निम्न शामिल हैं:
    "C:/Program Files/Vim/vim72/gvim.exe" --nofork "%*"
  2. मेरे PATH में git_editor.bat रखा।
  3. GIT_EDITOR=git_editor.bat सेट करें

इस के साथ, git commit , आदि सही ढंग से gvim निष्पादन योग्य आह्वान करेगा।

नोट 1: - gvim को --nofork विकल्प बीमा करता है कि जब तक प्रतिबद्ध संदेश लिखा नहीं जाता है तब तक यह अवरुद्ध हो जाता है।

नोट 2: यदि आपके पास पथ में रिक्त स्थान हैं तो gvim के पथ के चारों ओर उद्धरण आवश्यक है।

नोट 3: गिट के स्थान के साथ फ़ाइल पथ पास होने पर बस "% *" के आसपास उद्धरण आवश्यक हैं।


यह अधिक मुद्दों का 1 लक्षण है। विशेष रूप से आपके पास कुछ सेटिंग TERM = गूंगा है। अन्य चीजें जो ठीक से काम नहीं करती हैं less कमांड हैं जो कहती हैं कि आपके पास पूरी तरह कार्यात्मक टर्मिनल नहीं है। ऐसा लगता है कि यह आमतौर पर टीईआरएम को आपके वैश्विक विंडोज़ पर्यावरण चर में कुछ सेट करने के कारण होता है। मेरे लिए, समस्या तब आई जब मैंने स्ट्रॉबेरी पर्ल स्थापित किया, इस बारे में कुछ जानकारी इस समस्या के साथ-साथ कई समाधानों के लिए msysgit बग पर है।

पहला समाधान इसे जोड़कर अपने ~ / .bashrc में ठीक करना है:

export TERM=msys

आप इसे गिट बाश प्रॉम्प्ट से ऐसा कर सकते हैं:

echo "export TERM=msys" >> ~/.bashrc

दूसरा समाधान जो आखिरकार मैंने किया है क्योंकि मुझे स्ट्रॉबेरी पर्ल के कारणों की परवाह नहीं है कि मेरी पर्यावरण सेटिंग्स में टीईआरएम = गूंगा जोड़ने के कारण एमएसआईजीआईटी बग रिपोर्ट पर इस टिप्पणी में निर्देशित टीईआरएम = गूंगा को जाना और निकालना है।

नियंत्रण कक्ष / सिस्टम / उन्नत / पर्यावरण चर ... (या इसी तरह, विंडोज के आपके संस्करण के आधार पर) जहां चिपचिपा पर्यावरण चर विंडोज पर सेट हैं। डिफ़ॉल्ट रूप से, टीईआरएम सेट नहीं है। यदि वहां टीईआरएम सेट किया गया है, तो आप (या आपके द्वारा इंस्टॉल किए गए प्रोग्रामों में से एक - उदाहरण के लिए स्ट्रॉबेरी पर्ल) ने इसे सेट किया है। उस सेटिंग को हटाएं, और आपको ठीक होना चाहिए।

इसी प्रकार यदि आप स्ट्रॉबेरी पर्ल का उपयोग करते हैं और सीपीएएन क्लाइंट या उसके बारे में कुछ परवाह करते हैं, तो आप अकेले TERM=dumb छोड़ सकते हैं और अपनी ~ / .bashrc फ़ाइल में unset TERM उपयोग कर सकते हैं, जो ऊपर के रूप में एक स्पष्ट शब्द निर्धारित करने के लिए समान प्रभाव डालेगा।

निस्संदेह अन्य सभी समाधान सही हैं कि आप git config --global core.editor $MYFAVORITEEDITOR का उपयोग यह सुनिश्चित करने के लिए कर सकते हैं कि गिट आपके पसंदीदा संपादक का उपयोग करता है जब इसे आपके लिए लॉन्च करने की आवश्यकता होती है।



वैसे भी, मैं बस इसके साथ खेल रहा हूं और मेरे लिए अच्छी तरह से काम करने के लिए निम्न पाया है:

git config --global core.editor "'C:/Program Files/TextPad 5/TextPad.exe' -m"

मुझे नहीं लगता कि सीएमडी एकल-उद्धरण पसंद करता है, इसलिए आपको अंतरिक्ष एम्बेडेड स्ट्रिंग तर्क निर्दिष्ट करने के लिए "डबल कोट्स" का उपयोग करना होगा।

सिगविन (जो मुझे विश्वास है कि गिट्स बैश के लिए अंतर्निहित प्लेटफार्म है) दूसरी तरफ ' और ' दोनों पसंद करता है; आप सीएमडी-जैसे पथों का उपयोग कर / इसके बजाए \ " निर्दिष्ट कर सकते हैं, जब तक स्ट्रिंग को उद्धृत किया गया हो यानी इस उदाहरण में, एकल उद्धरण का उपयोग करना।

-m एकाधिक संपादकों के उपयोग को ओवरराइड / इंगित करता है और अंत में एक %* आवश्यकता नहीं है।


सिगविन के साथ एक समाधान यहां दिया गया है:

#!/bin/dash -e
if [ "$1" ]
then k=$(cygpath -w "$1")
elif [ "$#" != 0 ]
then k=
fi
Notepad2 ${k+"$k"}
  1. यदि कोई रास्ता नहीं है, तो कोई रास्ता नहीं पारित करें

  2. यदि पथ खाली है, खाली रास्ता पास करें

  3. यदि पथ खाली नहीं है, तो विंडोज प्रारूप में कनवर्ट करें।

फिर मैंने इन चर सेट किया:

export EDITOR=notepad2.sh
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'
  1. संपादक स्क्रिप्ट को गिट के साथ काम करने की अनुमति देता है

  2. GIT_EDITOR स्क्रिप्ट को हब कमांड के साथ काम करने की अनुमति देता है

Source


सी: \ उपयोगकर्ता \ YourUser फ़ोल्डर में .gitconfig फ़ाइल संपादित करें और जोड़ें:

[core]
editor = 'C:\\Program files\\path\\to\\editor.exe'

Vim/Gvim मेरे लिए अच्छा काम करता है।

>echo %EDITOR%

c:\Vim\Vim71\vim.exe

वर्ड पैड!

मैं विम का उपयोग करके खुश हूं, लेकिन चूंकि मैं कंपनी को गिट पेश करने की कोशिश कर रहा हूं, इसलिए मुझे कुछ चाहिए जो हम सभी चाहते थे, और पाया कि वर्डपैड ठीक काम करता प्रतीत होता है (यानी गिट तब तक इंतजार कर रहा है जब तक कि आप संपादन और बंद नहीं कर लेते खिड़की)।

git config core.editor '"C:\Program Files\Windows NT\Accessories\wordpad.exe"'

यह msysgit पर गिट बैश का उपयोग कर रहा है; मैंने विंडोज कमांड प्रॉम्प्ट से कोशिश नहीं की है (अगर इससे कोई फर्क पड़ता है)।


संपादित करें: vim 7.3 को अपडेट करने के बाद, मैं इस निष्कर्ष पर पहुंचा हूं कि ऐसा करने का सबसे आसान और आसान तरीका यह है:

  1. अपने पथ पर विम का मुख्य फ़ोल्डर जोड़ें (मेरा कंप्यूटर -> गुण -> उन्नत -> पर्यावरण चर पर राइट क्लिक करें)

  2. इसे चलाएं: git config --global core.editor "gvim --nofork '%*'"

यदि आप इसे इस तरह से करते हैं, तो मुझे पूरा यकीन है कि यह सिगविन के साथ भी काम करेगा।

मूल उत्तर:

यहां तक ​​कि कुछ विम से संबंधित उत्तरों के साथ, मुझे विंडोज़ के तहत जीवीआईएम के साथ काम करने में परेशानी हो रही थी (बैच फ़ाइल या% EDITOR% या सिगविन का उपयोग नहीं करते समय)।

अंत में जो मैं पहुंचा वह अच्छा और साफ है, और यहां कुछ समाधानों से आकर्षित होता है:

git config --global core.editor \
"'C:/Program Files/Vim/vim72/gvim.exe' --nofork '%*'"

एक गोचा जिसने मुझे कुछ समय लगाया, ये विंडोज-स्टाइल बैकस्लाश नहीं हैं, वे सामान्य आगे की कमी हैं।





editor