टर्मिनल में एक Git ट्री दिखाने में असमर्थ


439

Killswitchcollective.com के पुराने लेख, 30 जून 2009 , में निम्नलिखित इनपुट और आउटपुट हैं

git co master
git merge [your_branch]
git push

upstream    A-B-C-D-E            A-B-C-D-E-F-G
                 \        ---->               \
your branch       C-D-E                        G

मुझे दिलचस्पी है कि आप ओएस / एक्स में गिटक या गिटक्स का उपयोग किए बिना अपने टर्मिनल में पेड़ के समान दृश्य कैसे प्राप्त कर सकते हैं।

आप टर्मिनल में पेड़ों के समान दृश्य कैसे प्राप्त कर सकते हैं?


2
यह प्रश्न के लिए महत्वपूर्ण नहीं है, लेकिन प्रश्न में लेख अब उपलब्ध नहीं है। कैश्ड कॉपी इंटरनेट आर्काइव के माध्यम से उपलब्ध है: web.archive.org/web/20110831142839/http://…
एलन दे स्मेट

जवाबों:


795

आप टर्मिनल में पेड़ों के समान दृश्य कैसे प्राप्त कर सकते हैं?

git log --graph --oneline --all

एक अच्छी शुरुआत है।

आपको कुछ अजीब पत्र मिल सकते हैं। वे रंगों और संरचना के लिए ASCII कोड हैं। इस समस्या को हल करने के लिए निम्नलिखित को अपने साथ जोड़ें .bashrc:

export LESS="-R"

इस तरह से आपको तिगड़ी के ASCII फ़िल्टर का उपयोग करने की आवश्यकता नहीं है

git log --graph --pretty=oneline --abbrev-commit | tig   // Masi needed this 

Git-ready से लेख पाठ-आधारित ग्राफ में अन्य विकल्प हैं:

git log --graph --pretty=oneline --abbrev-commit

गिट लॉग ग्राफ

आपके द्वारा उल्लिखित लेख के बारे में, मैं पोड के उत्तर के साथ जाऊंगा : तदर्थ हस्त निर्मित आउटपुट।


Jakub Nar Jakbski टिप्पणी में tig , git के लिए एक ncurses- आधारित पाठ-मोड इंटरफ़ेस। उनकी रिलीज़ देखें।
इसने2007 में एक --graphविकल्प वापसजोड़ा।


1
मैंने सिर्फ अपने रेपो पर इसका परीक्षण किया। यह काम करता है लेकिन मैं MSysGit1.6.3 के साथ विंडोज पर हूं।
वॉन

files.getdropbox.com को यहां काम पर रोक दिया गया है :( मैं आपकी तस्वीर लगभग एक घंटे में देखूंगा, घर पहुंचने का समय।
वॉन

@Vonc: मैंने अब पहले कमांड के लिए दो टाइप किए। मुझे दूसरी कमांड के लिए चित्र के समान दृश्य मिलता है।
लेओ लेपोल्ड हर्ट्ज़ o

9
Git (ncurses का उपयोग करके) के लिए 'tig', टेक्स्ट-मोड इंटरफेस भी है, जो कि git-log के लिए '--graph' विकल्प से पहले टर्मिनल में ग्राफिकल इतिहास दृश्य था।
जैकब नार Jakबस्की

2
मुझे --decorateइस तरह के प्रदर्शन पर अपरिहार्य लगता है - यह संक्षिप्त नाम के साथ आपको नाम (शाखाएं, दूरस्थ और स्थानीय) दिखाता है।
मैट एनराइट

312

एक समाधान अपने आप में एक उपनाम बनाने .gitconfigऔर आसानी से कॉल करने के लिए है:

[alias]
    tree = log --graph --decorate --pretty=oneline --abbrev-commit

और जब आप इसे अगली बार कॉल करेंगे, तो आप इसका उपयोग करेंगे:

git tree

इसे संपादित किए बिना अपने ~ / .itconfig में डालने के लिए, आप यह कर सकते हैं:

git config --global alias.tree "log --graph --decorate --pretty=oneline --abbrev-commit"  

(यदि आप --global का उपयोग नहीं करते हैं, तो यह आपके वर्तमान रेपो के .it / config में डाल देगा।)


1
यह कैसे डिफ़ॉल्ट उपनाम नहीं है? मुझे लगता है कि यह गिट के सीएलआई का उपयोग करने के लिए थोड़ा कम
infurating होगा

123
git log --oneline --decorate --all --graph

शाखा नामों के साथ एक दृश्य वृक्ष शामिल है।

इसे एक उपनाम के रूप में जोड़ने के लिए इसका उपयोग करें

git config --global alias.tree "log --oneline --decorate --all --graph"

आप इसके साथ कहते हैं

git tree

गित वृक्ष


2
बहुत अच्छा, यह एक। मैं यहाँless -S वर्णित के साथ संयोजन में इसका उपयोग करता हूँ , ताकि लिपटी हुई रेखाओं को पेड़ से टकरा कर रोका जा सके।
djvg

60

tig

यदि आप एक इंटरैक्टिव पेड़ चाहते हैं , तो आप उपयोग कर सकते हैं tig। इसे brewOSX पर और apt-getलिनक्स में स्थापित किया जा सकता है ।

brew install tig
tig

आप यही पाते हैं:

यहां छवि विवरण दर्ज करें


क्या आप वर्तमान में टाइग द्वारा वॉनसी के जवाब में ऐसा पेड़ प्राप्त कर सकते हैं? हम VONC के जवाब में केवल Ascii फ़िल्टर के रूप में Tig का उपयोग करते हैं।
लेओ लेपोल्ड हर्ट्ज़ '

4

अपने आदेशों को छोटा रखने से उन्हें याद रखने में आसानी होगी:

git log --graph --oneline

1

मैं किसी को भी पूरा कमांड लिखने का सुझाव दूंगा

git log --all --decorate --oneline --graph

एक उपनाम बनाने के बजाय।

यह आपके सिर में आदेश प्राप्त करने के लिए अच्छा है, इसलिए आप इसे दिल से जानते हैं अर्थात जब आप मशीनों को बदलते हैं तो यह उपनाम पर निर्भर नहीं करता है।


2
यह वास्तव में git log --all --decorate --oneline --graph, git log a dog
महामारी के

@VonC अंतिम परिणाम समान है। वैसे भी, मैं आपसे सहमत हूं। प्रतिक्रिया के लिए धन्यवाद।
सैक्सोफोनिस्ट

हां, यही कि ;)मेरी पिछली टिप्पणी के अंत में स्माइली यह बताने की कोशिश कर रही थी (पूरी तरह से): आप उन विकल्पों का उपयोग किसी भी क्रम में कर सकते हैं, जिसे आप चाहते हैं। मुझे बस "लॉग ए डॉग" अजीब लगता है
VONC

1
या आप scp ~/.bashrc root@remote:~/और आपके उपनाम वास्तविक जल्दी से आगे बढ़ सकते हैं ।
प्रशासक 13:19
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.