क्यों कम को गैर-जरूरी तरीके से चलाया जा रहा है?


22

जब मैं git branch(बैश या csh से) चलाता हूं , तो यह आउटपुट को ऑटोमैटिकली पाइप करता है less। हालाँकि, रिपॉजिटरी में केवल कुछ शाखाओं के साथ यह अनावश्यक से परे है, यह कष्टप्रद है, क्योंकि जब मैं कम छोड़ता हूं तो ब्रांच लिस्टिंग गायब हो जाती है।

जांच की जा रही ~/.gitconfigफ़ाइल और स्थानीय .git/configफ़ाइलों को एक पेजर या कि इस का कारण होता है किसी और किसी भी चीज़ के बारे में कुछ भी नहीं पाता है। अन्यथा, मैंने वेब खोजों में जो कुछ भी पाया है वह मददगार या आशाजनक रहा है।

ऐसा क्यों हो रहा है, और क्या (अगर कुछ भी) मैं lessजरूरत पड़ने पर रन बनाने के लिए कर सकता हूं (जैसे कि जब कर रहा git logहो तो बहुत अधिक इतिहास है) लेकिन अन्यथा नहीं (जैसे git branchकेवल 2 या 3 शाखाओं के साथ)?


4
सामान्य तौर पर यह नहीं पता होता है कि किसी भी कमांड से कितना आउटपुट होने वाला है, इसलिए यह एक पेजर के माध्यम से डिफ़ॉल्ट रूप से सब कुछ भेज देता है, जो शायद कम होगा।
इकारस

6
पहली बात एक नई -nix स्थापना पर डाल करने export LESS=-Xके लिए है .profile। यह स्क्रीन को "सफाई" से कम रखता है । मैं इसे नफरत करता हूं कि मानक सेटिंग स्क्रीन को साफ करती है क्योंकि मुझे अक्सर सामान को काटने और पेस्ट करने या संदर्भ के रूप में उपयोग करने की आवश्यकता होती है।
पीटर - मोनिका

3
@Peter स्पष्ट होना (कोई सज़ा नहीं), केवल वही लोग जो स्क्रीन क्लियरिंग व्यवहार नहीं चाहते हैं, उन्हें ऐसा करना चाहिए।
डेविड जेड

@icarus: यह तर्कसंगत लगता है। हालाँकि, मेरा व्यवहार हाल ही में बदल गया। मुझे यकीन नहीं है कि क्यों - शायद कॉर्पोरेट सुरक्षा लोगों से "कुछ उच्च" करने के लिए मजबूर कुछ पर्यावरण चर के लिए एक बदलाव, जो परवाह नहीं करते हैं कि वे हर किसी की नौकरी को कितना मुश्किल बनाते हैं। वैसे भी, जीआईटी ने अचानक से एक लाइन आउटपुट को चलाने के लिए समझदार व्यवहार माना जो इस तरह से कम था कि आउटपुट कम हो जाने के बाद खो गया।
ग्रीनमैट

यदि व्यवहार ने हाल ही में बदल दिया है तो कम से कम यह संभव है कि LESS चर की एक सेटिंग सिस्टम-वाइड शेल स्टार्टअप फ़ाइलों, जैसे / etc / प्रोफाइल, /etc/profile.d/*, /etc/bash.bashrc, में जोड़ी गई। क्या आपके वातावरण में यह परिवर्तनशील है?
इकारस

जवाबों:


35

आप निम्नलिखित सेट कर सकते हैं:

git config --global core.pager 'less -FRX'

यह सुनिश्चित lessकरेगा कि

  • बाहर निकलें अगर पूरी फ़ाइल को पहली स्क्रीन पर प्रदर्शित किया जा सकता है ( F)
  • टर्मिनल स्वरूपण के लिए कच्चे नियंत्रण वर्णों को आउटपुट करें ( R)
  • लंबी लाइनें काटें ( S)
  • टर्मिनल के लिए init / de-init स्ट्रिंग्स न भेजें - बाहर निकलने पर स्क्रीन को साफ़ करने से बचें ( X)

संपादित करें: Sपीटर ए। साइडर की टिप्पणी के आधार पर विकल्प को हटा दिया गया


7
और --globalयदि आप इसे केवल वर्तमान रिपॉजिटरी पर लागू करना चाहते हैं तो छोड़ दें।
20

8
X और S में स्वाद के लिए पर्यावरण चर LESSको -FRजोड़ना, एक और तरीका है।
इकारस

2
यह भी देखें unix.stackexchange.com/questions/469360/…
icarus

11
सबसे अधिक संभावना है कि ओपी सामान्य रूप से परेशान करने वाला व्यवहार पाता है; मुझे लगता है कि एक पर्यावरण चर सेट कर सकता है export PAGER='less -FRSX'और git इसे सम्मान देगा (एक विशिष्ट git config अनुपस्थित)। Btw, -Sखतरनाक है क्योंकि यह चुपचाप उत्पादन को त्याग देता है।
पीटर - मोनिका

4

ट्यूनिंग lessके व्यवहार के लिए यहां कुछ शानदार उत्तर हैं , लेकिन |moreजब से मैं चाहता हूं , मेरी ग्रेबियर उंगलियां टाइपिंग के आदी हैं, और चूंकि मैं अभी भी गित के साथ अधिक मधुरता के साथ धुन में हूं, मैं उत्सुक हूं।

git config --global core.pager cat

3
git-configमान पृष्ठ बताता है कि इसका मान core.pagerशेल द्वारा व्याख्या किया जाना है। जब आप इसे सेट करते हैं, तो यह noकमांड को निष्पादित करने की कोशिश करता है no, जो सबसे अधिक संभावना नहीं है, फिर यह केवल सामग्री को आउटपुट करने के लिए वापस गिर जाता है। आपको अभी भी सिर पर एक त्रुटि संदेश दिखाई देगा। आप शायद जो करना चाहते हैं, उसे catइसके बजाय सेट करना है ।
QIS

1
यह जानकारी का एक अच्छा टुकड़ा है, लेकिन मुझे जो पसंद है वह यह है कि यह कुछ भी निष्पादित नहीं करता है । catबेकार है, और मैं विशेष रूप से परिवर्तन क्या बिल्ली है (cf. के लिए नहीं देखरेख util लिनक्स पर भरोसा नहीं करते उद्धृत फ़ाइलों पराजय )। शायद मुझे इसके बजाय "कभी नहीं" का उपयोग करना चाहिए। यह संभावना कम है कि इस तरह का कार्यक्रम मौजूद है। ls
dgc

7
स्थापना core.pagerरिक्त स्ट्रिंग पर ( git config core.pager '') या करने के लिए catहोगा नहीं सब पर कुछ भी चलाते हैं। यदि आप मुझ पर विश्वास नहीं करते हैं, तो आप इसे स्वयं काम कर सकते हैं ;-) ऐसा कोई कारण नहीं है जो इसे किसी डमी कमांड पर सेट करे no
mosvy

बहुत धन्यवाद! मुझे नहीं पता था कि खाली स्ट्रिंग के कारण कोई कमांड निष्पादन नहीं होगा। जैसा कि cat, आप कह रहे हैं कि पेजर कोड में git के पास उस स्ट्रिंग के लिए एक विशेष मामला है - अर्थात वह catप्रभावी रूप से "null" का पर्याय है? मैं इसे निष्पादित करने की उम्मीद करूंगा cat
dgc

यह वास्तव में मामला लगता है। ओह नहीं। लेकिन यह भी अच्छा है: मैं हमेशा गिट के लिए मेरी अरुचि को सही ठहराने के लिए और अधिक तरीकों की तलाश कर रहा हूं।
dgc
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.