Git को stdout में कैसे लिखें?


93

डिफ़ॉल्ट रूप से git diffसभी +-पंक्तियों को स्टडआउट में प्रिंट करता है, हालांकि मेरे पास एक (डेवियन) मशीन है (जिसे मैं ssh के माध्यम से जोड़ता हूं) जहां git diffमुझे एक संपादक की ओर ले जाता है (जो मुझे नहीं पता है कि कौन है) और मुझे qइसे जारी रखने के लिए प्रेस करने की आवश्यकता है ।

मेरे पास git config है

$ git config --list
user.name=XXX
user.email=XXX@XXX
color.ui=false
difftool.prompt=false
mergetool.prompt=false
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=XXX
branch.master.remote=origin
branch.master.merge=refs/heads/master
$ git config --global --list
user.name=XXX
user.email=XXX@XXX
color.ui=false
difftool.prompt=false
mergetool.prompt=false
$ git config --system --list
'/etc/gitconfig': No such file or directory

क्या कोई जगह है जो मुझे याद आ रही है? हो सकता है कि अज्ञात उपकरण एक गिरावट या कुछ और है क्योंकि मैं अपनी मशीन को कुछ याद कर रहा हूं? किसी भी मदद की सराहना की है। धन्यवाद।


जवाबों:


166

डिफ़ॉल्ट रूप से, Git सिस्टम के पेजर को अपना अलग आउटपुट (और आमतौर पर कोई भी आउटपुट जो स्क्रीनफुल से अधिक हो सकता है) भेजता है , जो कि एक उपयोगिता है जो एक समय में केवल एक स्क्रीनफुल आउटपुट प्रिंट करता है। यदि आप कमांड चलाते समय पेजर को निष्क्रिय करना चाहते हैं, तो --no-pagerGit को पास करें:

$ git --no-pager <subcommand> <options>

यह किसी भी Git कमांड के लिए चलाया जा सकता है।

यदि आप इसे डिफॉल्ट रूप से केवल डिफॉल्ट द्वारा डिसेबल करना चाहते हैं , तो आप डिफर पेजर को catरनिंग द्वारा सेट कर सकते हैं :

$ git config pager.diff false

यदि आप इसे सभी आदेशों के लिए डिफ़ॉल्ट रूप से अक्षम करना चाहते हैं , तो आप चलकर Git पेजर को सेट कर सकते हैं cat:

$ git config --global core.pager cat

पेजर के बारे में नहीं पता था। git config --global core.pager catइसे करें!। धन्यवाद :)
nacho4d

4
@ARonbauman: क्या आपने इसे git( उपकमांड नहीं ) पास किया है?
मियादी 1

मैं देखता हूं, "git --no-pager diff" "git diff --no-pager" से अलग है। स्पष्टीकरण के लिए धन्यवाद
aaronbauman

1
एक ही बात के लिए काम करता है git branch, जैसेgit config pager.branch false
दिन्जेस

30

निम्न core.pagerमान का उपयोग करता है less, जो प्रिंट करने के लिए प्रिंट करता है , और पेजर कार्यक्षमता भी है (यदि आवश्यक हो), ऊपर और नीचे स्क्रॉल करने में सक्षम है (इसके विपरीत cat:

$ git config --global core.pager "less -FRSX"

अगर यह पहली स्क्रीन पर फिट बैठता है (तो -F), कच्चे नियंत्रण वर्णों ( -R), रैपिंग ( -S) के बजाय लंबी लाइनों को काटता है, और दीमक इनिट / डिनिट स्ट्रिंग्स ( -X) का उपयोग नहीं करता है, तो यह तुरंत समाप्त हो जाता है ।


1
धन्यवाद .. मैं पूरे इंटरनेट पर इस विकल्प की तलाश कर रहा था :)
obai

यह वही है जो मुझे चाहिए
user3595632

20

यदि आप रंगों की परवाह नहीं करते हैं, तो आप बस catकिसी भी gitकमांड के लिए उपयोग कर सकते हैं ।

तो git diff | catआपके मामले के लिए।

संपादित करें: जैसा कि आप रंगों के उपयोग के बारे में करते हैं, तो टिप्पणियों में बताया गया है:

git diff --color | cat


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