विंडोज पर जीआईटी क्यों फैलता है यह चेतावनी देता है कि "टर्मिनल पूरी तरह कार्यात्मक नहीं है"?


111

मैं विंडोज पर msysgit 1.7.7.1 का उपयोग कर रहा हूं । उपयोग करते समय मुझे एक त्रुटि मिलती है git diff। इसके उत्पन्न होने का कारण क्या है? क्या एमएसआईज़िट में कोई अलग उपकरण शामिल नहीं है? मुझे क्या करना चाहिए?

चेतावनी: टर्मिनल पूरी तरह कार्यात्मक नहीं है


1
एक संभावित समाधान: kizzx2.com/blog/index.php/2009/01/07/…
Mr_Spock

ठीक है, अच्छी तरह से msysgit गिट का उपयोग करता है, यह नाम में तरह है। तो मैंने उस शब्द के रूप में msys के साथ पालन किया और यह काम किया! एक अच्छी तरह से स्वरूपित उत्तर में स्पष्टीकरण पोस्ट करें ताकि मैं आपको कुछ प्रतिनिधि दे सकूं!
पोर्टलजैकर

जवाबों:


62

गिट बैश के लिए, यह निम्नलिखित लाइन को ~ / .bashrc में जोड़कर तय किया जा सकता है:

export TERM=cygwin

-या-

export TERM=msys

खिड़कियों के लिए गिट द्वारा पहला मूल लगता है, दूसरा "हील" करने के लिए एक लोकप्रिय ज्ञात रूप है।

समस्या हो सकती है यदि कुछ अन्य प्रोग्राम (उदाहरण के लिए स्ट्राबेरी पर्ल ) TERMसिस्टम वातावरण चर सेट करता है।

http://code.google.com/p/msysgit/issues/detail?id=184


हां, लेकिन गिट के लिए फाइल ट्री में ऐसी कोई फाइल मौजूद नहीं है। दूसरे जवाब ने काम किया और समझ में आया।
पोर्टलजैकर

1
@Portaljacker - क्या मतलब है आपने काम किया है? गिट बैश को बंद करें, फिर से खोलें और देखें कि क्या यह अभी भी काम करता है?
मनोज् यों

4
हाँ, सेट या GUI के माध्यम से पर्यावरण चर को स्थापित करने वाली खिड़कियों में (अन्य उत्तर में दिखाए अनुसार उन्नत सेटिंग्स) जाने का रास्ता है।
cgp

11
यह जवाब असंतोषजनक है क्योंकि ओपी ने यह नहीं कहा कि वह बैश का इस्तेमाल कर रहा है और इस बात की कोई आवश्यकता नहीं है कि बैश से जीआईटी को चलाना होगा। व्यक्तिगत रूप से मैं विंडोज़ कमांड प्रॉम्प्ट का उपयोग करता हूं और मुझे ऐसा समाधान चाहिए जो उस वातावरण के लिए काम करे।
डेविड ग्रेसन

7
@DavidGrayson थ्रेड नेक्रो, मुझे पता है, लेकिन आप विंडोज कमांड प्रॉम्प्ट का उपयोग करके भी ऐसा कर सकते हैं setx TERM msysSETX(जैसा कि सिर्फ सेट के विपरीत) रजिस्ट्री के लिए एनवी चर लिखता है।
रॉसिडी

184

उदाहरण के लिए, यदि आप cmd.exe में समस्याएँ हैं, तो यहाँ चेतावनी देखें:

CMD.EXE बिना TERM सही ढंग से सेट किए

फिर बस अपने पर्यावरण चर सेट करें और TERM = msys शामिल करें। उसके बाद, हर बार जब आप एक cmd.exe खोलते हैं, तो आपका चर सही तरीके से सेट हो जाएगा।

अपना TERM वातावरण चर कैसे सेट करें

अब आपको अपने शेल (CMD.EXE) को पुनर्व्यवस्थित करना होगा। बस एक नया चलाओ। और वहां से, आपके पास अधिक मुद्दे नहीं होने चाहिए। फिर:

सही अवधि सेट के साथ CMD.EXE


हाँ, यह निश्चित रूप से है। मैं विस्टा पर हूँ, और यह पूरी तरह से हल है। धन्यवाद टेलीबॉल!
जे कोल मॉरिसन

2
कोई भी विचार जहां यह समस्या आती है या इस संदेश का क्या अर्थ है ?
एंथनी मास्टरीयन

7
@AnthonyMastrean का अर्थ है कि टर्मिनल टर्मिनल विंडो में विभिन्न स्थानों पर लिखने का समर्थन नहीं करता है। हर बार सही जगह पर कर्सर लाने के लिए एक लाख बैकस्पेस न करके, अगली विंडो को लिखने के लिए, विंडो अलग-अलग लिखना चाहती है।
jwg

चूंकि प्रोग्राम बदले नहीं गए हैं, वास्तविक समस्या टर्मिनल सपोर्ट नहीं है, यह git (बिल्कुल कम) अन्य प्रोग्राम द्वारा मूर्खतापूर्ण है जो कुछ मूल शब्द के रूप में TERM वेरिएबल को परिभाषित करता है, जैसा कि @manojlds बताते हैं।
एल्बफैन

2
यदि आप वैग्रंट का उपयोग कर रहे हैं, तो यह फिक्स बैश शेल के साथ समस्याओं का कारण बनता है। उदाहरण के लिए, नैनो अब काम नहीं करेगी, त्रुटि देते हुए: 'msys': अज्ञात टर्मिनल प्रकार
सिराह

16

उपरोक्त उत्तर मेरे लिए पूरी तरह से काम नहीं थे, इसलिए मैंने किया: जोड़ें

export TERM=msys 

शीर्ष पर " [githome] / etc / प्रोफाइल " करने के लिए लेकिन इसने केवल gash bash के लिए परिवर्तन किए। फिर मैंने जोड़ा

@set TERM=msys

@setlocal के बाद " [githome] /cmd/git.cmd " (मैंने कमांड लाइन से केवल git रन स्थापित किया है)। यह निर्णय वास्तव में अच्छा नहीं हो सकता है लेकिन यह मेरे लिए काम करता है और कोई टर्मिनल चेतावनी नहीं है। (मैं git संस्करण 1.7.10.msysgit.1 का उपयोग करता हूं)।


2
खिड़कियों के लिए, मुझे बस पर्यावरण वेरिएबल TERM से msys पर सेट करने की आवश्यकता है, जिसे SETX के माध्यम से किया जा सकता है।
cgp

14

इसका उत्तर यहां मिल सकता है , जिसमें समाधान के लेखक का दावा है कि:

पर्यावरण चर के TERMलिए सेट किया गया थाdumb

इसके बजाय था

TERM=cygwin

आप इसे बदल सकते हैं

TERM=msys

हाथ में समस्या को हल करने के लिए।


इस उत्तर को चालू करता है केवल gitbash के वर्तमान सत्र के लिए काम करता है, इसे दूसरे उत्तर में बदलना पड़ा।
पोर्टलजैकर

6

मैं शक्तियां में काम करता हूं और मेरे पास मेरे रास्ते में सीधे निष्पादन योग्य है।

सुझाए गए उत्तरों में से किसी ने भी काम नहीं किया, लेकिन मुझे एक समाधान मिला जो मेरे लिए काम करता है।

मैंने अपनी शक्तियाँ प्रोफ़ाइल में एक पंक्ति जोड़ी:

$env:TERM="msys"

जिसने मेरे लिए समस्या तय कर दी।


यह मेरे लिए कोई मुद्दा नहीं लगता है git संस्करण 1.7.11.msysgit.1 का उपयोग करके। मैं $ env को हटाने में सक्षम था: TERM = "msys" और मुद्दों के बिना मर्क्यूरियल में रंग एक्सटेंशन को फिर से सक्षम करें।
जॉन वेल्डन

अन्य अनुप्रयोगों के साथ संघर्ष जो विभिन्न टर्मिनलों का उपयोग करते हैं, यही कारण है कि आपको मनोज के उत्तर का पालन करना चाहिए और गीताश के स्वयं के शब्दशः में TERM को सेट करना चाहिए, बजाय यहाँ पर्यावरण चर को बदलने के, जो सभी कार्यक्रमों को प्रभावित करेगा।
jwg

1
@ jwg अच्छी बात है, लेकिन मैं हर समय गिट का उपयोग करता हूं और मैं बैश करने के लिए पॉवरशेल पसंद करता हूं, इसलिए कलर आउटपुट प्राप्त करने के लिए बस बैश चलाना मेरे लिए बहुत मुश्किल था।
जॉन वेल्डन

मैंने इसे अपने सामान्य प्रोफ़ाइल प्रोफाइल के बजाय अपने cmder प्रोफ़ाइल..ps1 फ़ाइल में जोड़ा।
gerrard00

6

मेरे मामले में एक त्वरित और गंदा समाधान --no-pagerविकल्प का उपयोग करने के लिए निकला ।

डिफ़ॉल्ट रूप से, कुछ गिट कमांड (जैसे log) एक पेजर का उपयोग करेंगे जैसे lessकि वे आउटपुट के लंबे होने की उम्मीद करते हैं। यात्रियों को तीर कुंजी के साथ पाठ को ऊपर और नीचे स्क्रॉल करने जैसी चीजों की आवश्यकता होती है, जो कभी-कभी काम नहीं करता है यदि आप किस तरह के टर्मिनल के बारे में धारणाएं गलत हैं (यह "पूरी तरह से कार्यात्मक नहीं है" का मतलब है)।

यदि आप समय से पहले जानते हैं कि आपका आउटपुट कम है, या आप चाहते हैं कि यह टर्मिनल पर आउटपुट डंप करें और स्क्रॉलिंग को अपने टर्मिनल प्रोग्राम तक छोड़ दें, तो आप इसे ओवरराइड कर सकते हैं और पेजर का बिल्कुल भी उपयोग नहीं कर सकते हैं, जैसे:

git --no-pager log

0

यदि किसी को Git एक्सटेंशन से यह लॉन्चिंग बैश मिलता है, तो सेटिंग की जांच करें Path to linux tools... । खान को सेट किया गया था C:\cygwin। इसे बदलना C:\Program Files (x86)\Git\bin\मेरे लिए तय है। मुझे इस तरह से bash लॉन्च करने के लिए TERM वैरिएबल सेट नहीं करना पड़ा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.