2012-03-13 12 views
11

मैं सोच रहा था कि किसी विवाद के आउटपुट को रंग देने या किसी संघर्ष के दौरान रीबेस करने के लिए कोई चाल है या नहीं। मैं विशेष रूप से फ़ाइल नाम के साथ लाइन रंग करने के लिए चाहते हैं, उदाहरण के लिए दूसरा यहां लाइन:गिट रंग मर्ज/रीबेज विवाद

Auto-merging CMakeLists.txt 
CONFLICT (content): Merge conflict in CMakeLists.txt 
Failed to merge in the changes. 

धन्यवाद

संपादित करें:

मैं यह लिख सकते हैं Git उर्फ ​​और एक पार्टी समारोह का उपयोग करना:

color-merge = "!f() { git merge --no-commit --stat $1| egrep --color 'CONFLICT .*|$'; }; f" 

यह सब संघर्ष लाइनों रंग होगा, लेकिन:

  • यह विकल्प विलय करने के लिए
  • वहाँ शाखा पर कोई पूरा होने से ट्रैक किया जाता

तो मैं और अधिक शक्तिशाली कुछ के लिए देख रहा हूँ है पारित कर दिया बदलने के लिए असंभव है।

चीयर्स

+0

'git config --global color.ui auto'? –

+0

मेरे पास रंग = हमेशा है लेकिन यह वही नहीं करता जो मैं चाहता हूं। – Pluc

+2

यह पागल है कि गिट अभी भी इस सवाल से दो साल बाद CONFLICT पर रंग का समर्थन नहीं करता है! – huocp

उत्तर

0
[color] 
    branch = auto 
    diff = auto 
    status = auto 

[color "branch"] 
    current = yellow reverse 
    local = yellow 
    remote = green 

[color "diff"] 
    meta = yellow bold 
    frag = magenta bold 
    old = red bold 
    new = green bold 

[color "status"] 
    added = yellow 
    changed = green 
    untracked = cyan 

http://jblevins.org/log/git-colors 

तो किसी मर्ज संघर्ष के लिए कोई रंग मुझे डर लग रहा।

+0

लिंक के लिए धन्यवाद। वास्तव में केवल गिट कॉन्फ़िगरेशन के साथ हासिल नहीं किया जा सकता है, लेकिन बैश कमांड जोड़कर यह संभव होना चाहिए। – Pluc

1

यहाँ एक पार्टी समारोह है कि आप (शाखा पूरा करने के लिए छोड़कर) वहाँ हो जाता है:

git-merge-color() { git merge [email protected] | egrep --color 'CONFLICT .*|$'; } 

आप किसी भी 'Git मर्ज' तर्क के साथ Git मर्ज रंग आह्वान कर सकते हैं कि आप कृपया।

+0

मैं इसे कैसे लागू/आमंत्रित करूं? यह वास्तव में मेरे लिए वादा करता है, लेकिन जब मैं बैश की बात करता हूं तो मैं पूरी तरह से नोब हूं। –

4

एक और विकल्प git alias बनाना हो सकता है। यह मेरे लिए बेहतर है क्योंकि यह कहीं भी एक असंबंधित .profile फ़ाइल में कहीं और तैरने के बजाय गिट-विशिष्ट अनुकूलन को एक साथ रखता है।

को कुछ इस तरह शामिल करने से आपकी ~/.gitconfig या स्थानीय Git परियोजना की .git/config भी काम करना चाहिए:

[alias] 
    color-merge = "!f() { git merge [email protected] | egrep --color 'CONFLICT .*|$' ; }; f" 

यह इतना तरह आह्वान: git color-merge branch --option1

ध्यान रखें कि आपके खोल के GREP_COLOR environment variable इस्तेमाल किया रंग का नियंत्रण रहेगा।

+0

अगर मैं गलत हूं तो कोई मुझे सही करता है, लेकिन यह दृष्टिकोण [शेलशॉक] का लाभ ले रहा है (http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-6271) भेद्यता बाश, है ना? या शायद यह समान दिखता है। यह सब के बाद एक ENV var का उपयोग नहीं कर रहा है। – beporter

1

यह एक पुरानी सवाल नए सवालों से संदर्भित है, और यह पहले एक है कि मेरे गूगल खोज परिणामों पर दिखाई देता है, तो मुझे लगता है कि यह अद्यतन जवाब 5 साल बाद पोस्ट करने के लिए सुविधाजनक है:

बस पंक्ति जोड़ें unmerged = <color> अपना Git सेटिंग्स फ़ाइल (~/.gitconfig) में [color "status"] समूह, इस तरह में:

[color "status"] 
    unmerged = yellow 

मैं git --version2.11.0 उपयोग कर रहा हूँ। तो हाँ, आखिरकार गिट ने इसका समर्थन किया :-)

संबंधित मुद्दे