मैं `गिट लॉग` में शाखाओं का नाम कैसे दिखा सकता हूं?


216

मैं आउटपुट में शाखाओं का नाम कैसे दिखा सकता हूं git log?

उदाहरण के लिए, git log --graph --allमुझे कमिट्स का अच्छा अवलोकन मिलता है, लेकिन भ्रमित हो जाता है कि कौन सी लाइन मास्टर है, और उदाहरण के लिए मेरी कौन सी शाखा है।


1
हाथ से, लिंक किए गए सिर या टैग के नाम दिखाते हुए प्रतीत होता है कि कुछ हालिया gitअपडेट के बाद पहले से ही डिफ़ॉल्ट रूप से किया जा रहा है ।
अंडरस्कोर_ड

जवाबों:


321

सजाने के विकल्प का प्रयास करें।

git log --graph --all --decorate

यह टिप्पणी करता है जो टैग या शाखाओं द्वारा इंगित की जाती है।


42
साथ --prettyआप उपयोग कर सकते हैं %d, जहां आप 'सजावट' चाहते हैं।
सीबी बेली

4
@ नोली: आप इसे दिखाने के लिए क्या उम्मीद कर रहे हैं? सभी आवागमन शाखा युक्तियाँ नहीं हैं।
सीबी बेली

9
@noli git केवल शाखा के सबसे हाल के कमेंट (टिप) में शाखा का नाम रखता है। इतिहास में सभी कमिटमेंट समान और गुमनाम हैं। यदि आप शाखाओं का नाम चाहते हैं ताकि हर प्रतिबद्ध शाखा का नाम ले, तो आप मर्क्यूरियल का उपयोग कर सकते हैं।
सम्पो स्मोलैंडर

7
@CharlesBailey: मुझे रेफरी के रंग पसंद हैं git log --graph --all --oneline --decorate। मेरे पास एक उपनाम है git graphजो --prettyअन्य सामान (जैसे कि लेखक और तारीख) दिखाने के लिए उपयोग करता है , लेकिन %dमुझे वहां के रंग नहीं देता है --decorate। अभी तो मैं अपना सब refs के लिए पीले रंग का उपयोग करें, आप जानते हैं कि कैसे मैं कर सकते हैं करना --prettyहै %dके रंग इनहेरिट स्ट्रिंग --decorate?
गॉथियर

3
@ गौथियर यदि आप अपने --prettyस्वरूपों में डिफ़ॉल्ट रंग पसंद करते हैं, तो %C(auto)उस तत्व से पहले जोड़ें जो रंगीन होना चाहिए। जैसेgit log --pretty=format:"%cd %h %cn %s %C(auto)%d"
रादोन --४ Feb२

7

मैं कुछ इसी तरह की तलाश में था - लेकिन यह जानना चाहता था कि किस शाखा में बदलाव किया गया था। उम्मीद है कि यह जवाब दूसरों के भी काम आएगा।

मैं blackboxएन्क्रिप्शन के साथ एक जोखिम की जांच कर रहा हूं , जहां एक रेपो और इसकी शाखाएं / टैग वर्तमान के लिए अनुपलब्ध हो सकते हैं adminsजब पर्याप्त उपयोगकर्ता एक परियोजना छोड़ देते हैं और keyringsनिर्देशिका धार्मिक रूप से मास्टर से दूर नहीं हुई है)

मैंने पाया कि नीचे दिया गया उत्तर सहायक था जहां keyringsनिर्देशिका को मास्टर से अपडेट नहीं किया गया था ...

मूल रूप से जोड़ने के --sourceलिए मुझे शाखाओं / टैग को दिखाने की आवश्यकता थी। जोड़ने --name-onlyसे यह भी पता चलेगा कि वास्तव में कौन सी फाइल बदली गई थी।

cd /path/to/repo-that-uses-blackbox-encryption
git log --graph --all --decorate --source --name-only keyrings

एक अन्य उपयोगी उत्तर: शाखा नाम के साथ लॉग लॉग कैसे दिखाएं


मेरे लिए, --sourceअकेले HEADसभी कमिट्स के लिए देता है। के साथ संयोजन में --all, यह विभिन्न शाखाओं के बीच अंतर करने के लिए लगता है, लेकिन प्रदर्शित जानकारी वह नहीं है जो मैं उम्मीद करता हूं: मेरे द्वारा किए गए कमिट masterके लिए refs/heads/master, मुझे कुछ निजी शाखा मिलती है ( refs/remotes/origin/…)। मुझे संदेह है कि विलय और / या नई शाखाएं Gitइतिहास की जानकारी खो देती हैं।
vinc17

इसके बजाय --all, मैं शाखाओं के साथ फ़िल्टर कर सकता हूं --branches --remotes=<pattern>, लेकिन जैसे ही दो शाखाओं को एक साथ मर्ज किया जाता है, Git के पास अब वह जानकारी नहीं होती है जिस पर किसी की प्रतिबद्धता थी कि यह कब किया गया था।
vinc17

1

यदि आप अपने टर्मिनल के रूप में ओह-माय-ज़श का उपयोग करते हैं, तो गिट एलियाज़ का एक गुच्छा उपलब्ध है। जिनमें से सभी को उनके रेपो ओह-माय-ज़श / प्लगइन्स / गिट पर देखा जा सकता है । यदि आप इस टर्मिनल का उपयोग नहीं करते हैं, तो आप बस उपनाम पकड़ सकते हैं और जिन्हें आप पसंद करते हैं उन्हें अपने वातावरण में पेस्ट कर सकते हैं।

स्वीकृत उत्तर git log --graph --all --decorateकमांड प्रस्तुत करता है , जो glggaओह-माय-ज़श में उपनाम के रूप में उपलब्ध है ।

व्यक्तिगत रूप से मैं उन glodsअन्य लोगों को पसंद करता हूं जो अनुवाद करते हैं:

git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.