रंग को संरक्षित करने के लिए उत्पादन को अलग करें


123

क्या यह संभव है कि git diffकिसी भी तरह रंग भरने के साथ आउटपुट को फ़ाइल में सहेजा जाए?

मुझे पता है कि कैसे करना है git diff > filename.rtf- जो एक फ़ाइल को बचाता है, लेकिन मैं रंग को संरक्षित करना चाहता हूं।


2
आप HTML को रंग से बदल सकते हैं: stackoverflow.com/questions/2013091/coloured-diff-to-html
Gabe Moothart

5
यदि आप .diff एक्सटेंशन के साथ इसे सहेजते हैं तो नोटपैड ++ फ़ाइल को उजागर करेगा।
महाशय

जवाबों:


146

प्रयत्न:

git diff --color > foo.txt

फिर बाद में जारी करें:

cat foo.txt

या:

less -R foo.txt

2
@RoR, एक व्यक्ति का "जिबरिश" दूसरे व्यक्ति का (अच्छी तरह से, टर्मिनल का) रंग कोड है। ;-) मैने इसे आजमाया और इसने कार्य किया; यदि मैं catकमांड-लाइन से फाइल करता हूं तो कलरिंग संरक्षित है । (आप रंगों को संरक्षित करने की अपेक्षा कैसे करेंगे?)
मोंटपिल्लो

1
अच्छा है कि यह क्या करता है। बैश रंग कोड जोड़ता है। यदि आप कंसोल में फ़ाइल को कैट करते हैं तो यह रंगों को दिखाता है।
राल्फ्थिनेजजा

1
@RoR आपको bash कलर कोड को rtf फॉर्मेट में बदलने के लिए बीच में कुछ डालना होगा।
राल्फ्थिनेजजा

3
नोटपैड ++ अलग-अलग फाइलों को हाइलाइट कर सकता है। (* .diff एक्सटेंशन स्वतः हाइलाइट हो जाते हैं, अन्यथा बदल जाते हैं Language --> D --> Diff।) यदि आपको डिफ़ॉल्ट रंग पसंद नहीं हैं, तो उन्हें बदल दें Settings --> Style Configurator --> Diff। रंगों के साथ पेस्ट कॉपी करने के लिए आप एक प्लगइन (जैसे NppExport) का उपयोग कर सकते हैं जो आरटीएफ या एचटीएमएल में निर्यात / कॉपी करने की अनुमति देता है।
निकिता जी।

3
git diff AB> foo.diff (कई संपादक फ़ाइल को रंगों के साथ खोलेंगे क्योंकि फ़ाइल एक .diff फ़ाइल है)
zeusstl

34

फ़ाइल को .diff एक्सटेंशन के साथ सहेजें और नोटपैड ++ या विम या सबलाइमटेक्स्ट में खोलें।

git diff > 20150203_someChanges.diff

धन्यवाद @ महासंघ


मुझे लगता है कि आप बीच में '>' भूल गए, यह काम नहीं करता है
GoGoris

20

Sublime पाठ 2 में आउटपुट फ़ाइल खोलें । यह अलग रंग दिखाता है।


1
यदि फ़ाइल अलग-अलग * .diff से अलग है, तो उचित हाइलाइटिंग को सक्षम करने के लिए आपको सिंटैक्स को बदलने की आवश्यकता हो सकती है। (व्यू के माध्यम से -> सिंटैक्स -> डिफ)।
निकिता जी।

यह diff.txtमेरे लिए उजागर नहीं करता है, यहां तक ​​कि स्वचालित रूप से सही नीचे कोने में "डिफ" का पता चला है।
नकिलोन

11

@ गबे के जवाब पर विस्तार करने के लिए।

आप एएनएसआई के आउटपुट को html कन्वर्टर बैश स्क्रिप्ट में पाइप कर सकते हैं और उस आउटपुट को एक html फ़ाइल में निर्देशित कर सकते हैं:

git diff --color|./ansi2html.sh > changes.html

बेशक html को किसी भी ब्राउज़र द्वारा देखा जा सकता है इसलिए आउटपुट को विंडोज आदि में पढ़ा जा सकता है।

asi2html कोड यहाँ है: http://www.pixelbeat.org/scripts/ansi2html.sh


काम नहीं करता है मुझे मिलता है: gawk: cmd। पंक्ति: 25: (FILENAME = - FNR = 1) घातक: स्केल के संदर्भ में सरणी 'ए (स्पैन)' का उपयोग करने का प्रयास
टिम

2
Homebrew जाओ और भागो brew install gawk। आपको भी आवश्यकता होगी brew install gnu-sed
जेफ्री बूथ

वास्तव में मैं क्या चाहता हूँ, कमाल!
कीथ

Asi2html python लाइब्रेरी ने मेरे लिए github.com/ralphbean/ansi2html किया । स्थापित करने योग्य पाइप और इस उत्तर में बैश स्क्रिप्ट के समान काम करता है। "Asi2html" के साथ "./ansi2html.sh" को बदलना न भूलें।
नागासाकी



2
git remote add -f b path/to/repo_b.git
git remote update
git diff master remotes/b/master > foo.txt

'* .Txt' फ़ाइलों में निकाले गए अंतर को आसानी से SublimeText2 द्वारा आसानी से सेट किया जा सकता है (देखें -> सिंटैक्स -> डिफ) के माध्यम से।


git remote rm remotes/b/masterइसकी मूल स्थिति में शाखा को वापस लाने के लिए।
अभिजीत

1

किसी भी रंग वाले टर्मिनल टेक्स्ट को अनुमति देने के लिए ... एक ब्राउज़र से देखा जा सकता है

sudo apt-get install aha  #  https://github.com/theZiz/aha

ahaइसके बाद के संस्करण का उपयोग कर स्थापित करें

git diff --color mysourcefile  | aha > ~/cool_colorized.html

firefox  ~/cool_colorized.html

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