सवाल मैक ओएस एक्स पर काम करने के लिए गिट-समापन.बैश कैसे प्राप्त करें?


मैंने पीछा किया है http://blog.bitfluent.com/post/27983389/git-utilities-you-cant-live-without सेवा मेरे जोड़ना git-completion.bash मेरे लिए /opt/local/etc/bash_completion.d/git-completion

और मैंने रखा PS1='\h:\W$(__git_ps1 "(%s)") \u\$ ' मेरे .bashrc_profile में

लेकिन अब मुझे यह मिल रहा है -bash: __git_ps1: command not found सब कुछ मैं करता हूँ cd

क्या आप कृपया मुझे बता सकते हैं कि मुझे क्या याद आ रही है?


88
2017-08-29 00:49


मूल


यह भी देखें: trac.macports.org/wiki/howto/bash-completion - Ioannis Filippidis


जवाब:


मैं गिट का उपयोग कर स्थापित किया MacPorts मेरे नए हिम तेंदुए की स्थापना पर। मैकपॉर्ट्स .dmg छवि से स्थापित होने के बाद, टर्मिनल.एप में ये आदेश होंगे:

sudo port selfupdate
sudo port install git-core +bash_completion

यदि आप एसवीएन रिपॉजिटरीज और दस्तावेज़ों से खींचने के लिए भी समर्थन चाहते हैं, तो दूसरी पंक्ति के बजाय इसका उपयोग करें:

sudo port install git-core +bash_completion +doc +svn

फिर निम्नलिखित को अपने ~ / .profile या ~ / .bash_profile में जोड़ें:

# मैकपॉर्ट्स बैश खोल कमांड पूर्णता
अगर [-एफ / ऑप्ट / स्थानीय / आदि / bash_completion]; फिर
    । / Opt / स्थानीय / etc / bash_completion
फाई

या माउंटेन शेर पर संस्करण 2.1.2 के बाद से मैकपॉर्ट्स के लिए:

# मैकपॉर्ट्स बैश खोल कमांड पूर्णता
अगर [-f /opt/local/etc/profile.d/bash_completion.sh]; फिर
  । /opt/local/etc/profile.d/bash_completion.sh
फाई

या गिट के नए संस्करणों के साथ मैकपॉर्ट्स के लिए:

अगर [-f /opt/local/share/git-core/git-prompt.sh]; फिर
    । /opt/local/share/git-core/git-prompt.sh
फाई

नोट: bash_completion.sh द्वारा बैश 4.1 या उच्चतम की आवश्यकता है। अगर पूरा नहीं होता है तो कोशिश करें echo $BASH_VERSION यह देखने के लिए कि क्या यह मुद्दा है। यदि ऐसा है, तो टाइप करके मैकपॉर्ट्स बैश दर्ज करें bash और फिर गिट पूरा करने की कोशिश करो।


65
2017-08-30 08:03



मैं बस पेस्ट की प्रतिलिपि बनाता हूं, और मुझे अभी भी ओपी की त्रुटि मिलती है। = \। आप कैसे बताते हैं कि क्या शामिल किया गया है? मैं नहीं तो bash_completion सोर्स किया गया है - NullVoxPopuli
गिट / मैकपोर्ट / बैश-पूर्णता के नए संस्करणों के साथ नोट करें प्रॉम्प्ट एक अलग फ़ाइल में है। देख: trac.macports.org/ticket/36334  if [ -f /opt/local/share/git-core/git-prompt.sh ]; then . /opt/local/share/git-core/git-prompt.sh fi - Yehosef
इसलिये /opt/local/etc/profile.d/bash_completion.sh ज़रूरत $BASH_VERSION 4.1 या बेहतर, मैक ओपन एक्स 10.8.3 पर मैकपॉर्ट्स 2.1.3 के साथ निम्नलिखित करना था: मैक ओएस एक्स लॉगिन खोल को इसके डिफ़ॉल्ट से स्विच करें /bin/bash (3.2.48 (1) - कृपया) मैकपॉर्ट्स के लिए /opt/local/bin/bash (4.2.42 (2) - कृपया) जैसा कि यहां वर्णित है: stackoverflow.com/a/791244/287984। मूल रूप से if [ `grep /opt/local/bin/bash /etc/shells` ]; then echo /opt/local/bin/bash | chsh -s /opt/local/bin/bash; else echo /opt/local/bin/bash | sudo tee -a /etc/shells; chsh -s /opt/local/bin/bash; fi - Uwe Günther
मेरे लिए बहुत अच्छा काम किया। प्रतिस्थापित करना था /bin/bash टर्मिनल.एप के साथ /opt/local/bin/bash मैकपोर्ट से + सभी .bash_profile यहां सुझाए गए परिवर्तन। - bgs
4.1 या बाद में बैश करने के लिए आप यहां दिए गए निर्देशों का पालन कर सकते हैं: apple.stackexchange.com/questions/70132/... - ThomasW


यदि आपने होमब्री का उपयोग करके गिट स्थापित किया है तो आप मैकपॉर्ट्स सलाह को थोड़ा समायोजित कर सकते हैं और इसे अपने साथ जोड़ सकते हैं .bash_profile तथा .bashrc

if [ -f `brew --prefix`/etc/bash_completion.d/git-completion.bash ]; then
. `brew --prefix`/etc/bash_completion.d/git-completion.bash
fi

यह जांचने का सबसे अच्छा तरीका है कि क्या आपके पास होमब्री का उपयोग करके गिट सही ढंग से स्थापित किया गया है या नहीं

brew info git

और गिट बैश पूर्ण करने की स्थापना निर्देशिका के लिए आउटपुट की जांच करें

गिट (1.7.12) का नवीनतम संस्करण भी प्रॉम्प्ट को सक्षम करने के लिए निम्नलिखित की आवश्यकता है।

if [ -f `brew --prefix`/etc/bash_completion.d/git-prompt.sh ]; then
    . `brew --prefix`/etc/bash_completion.d/git-prompt.sh
fi

54
2018-06-21 19:39



अधिक के लिए __git_ps1, देख superuser.com/a/477749/90231 इस ढेर में जवाब। - RichVel


आपको बस इतना करना है git-completion.bash अपने उपयोगकर्ता घर में फ़ाइल करें bin निर्देशिका और आप में निम्नलिखित जगह .profile या .bash_profile फ़ाइल:

export PATH="$HOME/bin:$PATH"
source ~/bin/git-completion.bash
PS1='[\u@\h \w$(__git_ps1 " (%s)")]\$ '

यह क्या करता है यह सुनिश्चित कर लें कि आपका स्थानीय बिन पाथ में है और source आदेश चीजें जा रहा है। फिर निश्चित रूप से पीएस 1 परिवर्तन प्रॉम्प्ट में वर्तमान में चेक आउट शाखा डालता है।

इसलिए, मैकपोर्ट स्थापित करने के लिए कोई मैकपोर्ट स्थापित नहीं है (विशेष रूप से अगर आपने इसे पहले से इंस्टॉल किया है तो परेशान करना)।


26
2018-05-27 05:39



github.com/git/git/raw/master/contrib/completion/... - Nickolay
उन लोगों के लिए सोचें कि आपके पीएस 1 चीज को अपने संकेत में रंगों के साथ कैसे जोड़ना है: stackoverflow.com/questions/816790/... - Nickolay
अधिक सटीक, गिट-समापन.बैश बस आपके अंदर कहीं होना चाहिए $PATH। मैंने अपना अंदर डालने का फैसला किया /usr/local/bin/ ताकि मुझे अपने मौजूदा को संशोधित करने की आवश्यकता न हो $PATH। - metavida


जबकि मौजूदा उत्तर पुराने मैकपॉर्ट्स के लिए सही है, वहीं मौजूदा त्रुटि वाले मैकपॉर्ट्स के साथ एक नई समस्या है।

द करेंट बैश: पूर्ण करने पैकेज (2.0 आर 1) को ठीक से काम करने के लिए कम से कम एक बैश 4.1 की आवश्यकता होती है। एक सामान्य ओएस एक्स टर्मिनल के रूप में उपयोग करता है /bin/bash यह केवल 3.x हो जाता है। आपको उपयोग करने के लिए आपको टर्मिनल सेटिंग्स बदलनी होंगी /opt/local/bin/bash -l जैसा कि यहां मैकपोर्ट्स दस्तावेज़ में वर्णित है: http://trac.macports.org/wiki/howto/bash-completion


13
2017-07-19 08:49



यह सबसे सही जवाब है क्योंकि मैकपोर्ट अपडेट करने के बाद ही मुझे समस्या हो रही है। टर्मिनल से मैकपोर्ट्स बैश का उपयोग करने का एकमात्र नकारात्मक पक्ष यह है कि जब मैं अपनी टर्मिनल विंडो बंद करने का प्रयास करता हूं तो यह अब चल रही प्रक्रियाओं को समाप्त करने के बारे में चेतावनी देता है - क्या आप इसमें भाग लेते हैं? - vitch


आपको आदेश पूर्ण करने के कार्यों को स्रोत करने की आवश्यकता है। PS1 से पहले अपने .bashrc_profile में जोड़ें:

. /opt/local/etc/bash_completion.d/git-completion

6
2017-08-29 01:19



गिट-समापन.बैश यहां पाया जा सकता है: raw.github.com/git/git/master/contrib/completion/... - TJ Biddle


कष्टप्रद यह फिर से टूट गया है। इस बार यह संस्करण 1.7.12-1 संस्करण के साथ git लोगों। लोगों को पूर्णता कार्यक्षमता के बिना केवल तत्काल कार्यक्षमता प्राप्त करने की अनुमति देने के लिए (जो चीजों को धीमा कर सकता है), उन्होंने bash_completion / git से और तुरंत अपनी फ़ाइल git-prompt.sh में त्वरित कार्यक्षमता को दोहराया।

तो @ लारा द्वारा वर्णित bash_completion को जोड़ने से आपको केवल पूरा हो जाएगा (टैब को टैग / शाखा नामों को पूरा करना)।

पाने के लिए __git_ps1 इसलिए आप इसे अपने पीएस 1 प्रॉम्प्ट में उपयोग कर सकते हैं, आपको निम्नलिखित को अपने ~ / .profile में जोड़ने की भी आवश्यकता है।

. /opt/local/share/doc/git-core/contrib/completion/git-prompt.sh

कुछ पृष्ठभूमि यहाँ है - https://bbs.archlinux.org/viewtopic.php?pid=1163632#p1163632


5
2017-09-21 00:15



प्रश्न में फ़ाइल: raw.github.com/git/git/master/contrib/completion/git-prompt.sh - papercowboy


या साथ homebrew

brew install bash-completion git-extras

3
2018-01-16 04:18



बहुत बहुत धन्यवाद। यह होना चाहिए brew install bash-completion git-extras हालांकि (अंडरस्कोर के बजाय डैश)। - simonair


ए पर एक समाधान मिला इसी तरह का सवाल:

Git-OSX-संस्थापक साथ आता है git-completion.bash और इसे स्थापित करता है /usr/local/git/contrib/completion/। बस उस फ़ाइल को अपने स्रोत से स्रोत करें .bash_profile लेना __git_ps1


2
2017-07-08 18:07





माउंटेन शेर और मैक-पोर्ट्स के लिए मुझे अपने .bash_profile में निम्न पंक्तियों का उपयोग करने के लिए __git_ps1 और सामान्य रूप से चलाने के लिए पूर्णता प्राप्त करने की आवश्यकता है:

# Bash shell command completion
if [ -f /opt/local/share/doc/git-core/contrib/completion/git-completion.bash ]; then
  . /opt/local/share/doc/git-core/contrib/completion/git-completion.bash
fi

if [ -f /opt/local/share/doc/git-core/contrib/completion/git-prompt.sh ]; then
  . /opt/local/share/doc/git-core/contrib/completion/git-prompt.sh
fi

2
2017-12-07 06:32