Git bash कमांड लाइन को कैसे पूरा करें?


130

उदाहरण के लिए, एक ताजा उबंटू मशीन पर, मैंने अभी-अभी रन किया है sudo apt-get git, और जैसे टाइप करने पर कोई पूर्णता नहीं है git check[tab]

मुझे http://git-scm.com/docs पर कुछ भी नहीं मिला , लेकिन IIRC पूरा करना इन दिनों git पैकेज में शामिल है और मुझे बस अपने bashrc में सही प्रविष्टि की आवश्यकता है।


मेरे लिए उबंटू सटीक (और फेडोरा 17) बॉक्स से बाहर काम करता है।
मैकेनिकल घोंघा

2
यह जांचने के लिए कि आपके पास डिफ़ॉल्ट रूप से है या नहीं, आप चला सकते हैं (cd ~ && exec cat .bashrc | grep completion)
एडेरोक्स

जवाबों:


181

लिनक्स पर

अधिकांश वितरणों पर, जब आप गिट स्थापित करते हैं, तो git पूर्ण स्क्रिप्ट को /etc/bash_completion.d/(या /usr/share/bash-completion/completions/git) में स्थापित किया जाता है । आपको बस इसका उपयोग करने की आवश्यकता है - इस पंक्ति को अपने में जोड़ें .bashrc:

source /etc/bash_completion.d/git
# or
source /usr/share/bash-completion/completions/git

उबंटू के कुछ संस्करणों में, जीआईटी स्वतः पूर्णता को डिफ़ॉल्ट रूप से तोड़ा जा सकता है, इस कमांड को चलाकर पुनः स्थापित करना इसे ठीक करना चाहिए:

sudo apt-get install git-core bash-completion

मैक पर

आप Homebrew या MacPorts का उपयोग करके गिट समापन को स्थापित कर सकते हैं।

होमब्रू

if $BASH_VERSION> 4: brew install bash-completion@2(अपडेट किया गया संस्करण) विशेष ध्यान दें कि 3.2.57 (1) -release के साथ MacOS डिफ़ॉल्ट जहाजों के रूप में आपके पास कौन सा संस्करण है।

इसमें जोड़ें .bash_profile:

  if [ -f /usr/local/share/bash-completion/bash_completion ]; then
    . /usr/local/share/bash-completion/bash_completion
  fi

बैश के पुराने संस्करणों के लिए: brew install bash-completion

इसमें जोड़ें .bash_profile:

[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion

MacPorts

sudo port install git +bash_completion

फिर इसे अपने में जोड़ें .bash_profile:

if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
fi

इस गाइड में अधिक जानकारी: बैश गिट समापन को स्थापित करें

ध्यान दें कि सभी मामलों में आपको परिवर्तन करने के लिए एक नया शेल (नया टर्मिनल टैब / विंडो खोलना) बनाने की आवश्यकता है।


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

5
ubuntu में इसे /etc/bash_completion.d/git-prompt
Catskul

2
मेरे पास Git है, लेकिन नहीं /etc/bash_completion.d
साठ4bit

13
मेरे Ubuntu 14.04 में यह फ़ाइल है /usr/share/bash-completion/completions/git/etc/bash_completion.d/git-promptजीआईटी शीघ्र सहायता के लिए उपयोग किया जाता है, पूरा होने के लिए नहीं।
रे चेन

18
चेतावनी: मैक homebrew विधि केवल काम करता है अगर आप Git स्थापित के माध्यम से homebrew करते हैं brew uninstall bash-completionतो brew install gitआप Git से पहले किसी अन्य विधि के माध्यम से स्थापित किया था, तो ऊपर दिए गए चरणों काम करेंगे।
patapouf_ai

66

मेरे पास एक ही मुद्दा था, नीचे दिए गए चरणों का पालन किया:

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash

फिर निम्न पंक्तियों को अपने साथ जोड़ें .bash_profile(आम तौर पर आपके होम फोल्डर के नीचे)

if [ -f ~/.git-completion.bash ]; then
  . ~/.git-completion.bash
fi

स्रोत: http : //code-worरियर.com / blog / autocomplete-git/


मैं एक प्रॉक्सी के पीछे था इसलिए मुझे कर्ल को काम करने के लिए पहले प्रॉक्सी सेट करना पड़ा, export https_proxy=proxy_ip:proxy_portमुझे वास्तव में नहीं मिलता है कि यह सिस्टम से सेटिंग्स क्यों नहीं मिलता है।
13

2
यह वास्तव में अपने नाम के सामने एक डॉट द्वारा उस फ़ाइल को छिपाने की आवश्यकता नहीं है। इसके अलावा: गिट संस्करणों के साथ सावधान (बुद्धिमानी का जवाब देखें)
वाल्टर ट्रॉस

42

आपके द्वारा देखे जाने वाले अधिकांश निर्देश आपको डाउनलोड करने के लिए कहेंगे

https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash

और स्रोत है कि आपके बैश स्टार्टअप स्क्रिप्ट में जैसे .bashrc

लेकिन इसके साथ एक समस्या है, क्योंकि यह masterशाखा को संदर्भित कर रहा है , जो कि नवीनतम संस्करण है git-completion.bash। समस्या यह है कि कभी-कभी यह टूट जाएगा क्योंकि यह आपके द्वारा इंस्टॉल किए गए गिट के संस्करण के साथ संगत नहीं है।

वास्तव में, अभी यह टूट जाएगा क्योंकि masterशाखा की git-completion.bashनई विशेषताएं हैं जिनके लिए git v2.18 की आवश्यकता होती है, जो अभी तक पैकेज प्रबंधकों और इंस्टॉलरों में से किसी ने भी अपडेट नहीं किया है। आपको एक त्रुटि मिलेगीunknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config

तो सबसे सुरक्षित समाधान उस संस्करण / टैग को संदर्भित करना है जो आपके द्वारा इंस्टॉल किए गए गिट से मेल खाता है। उदाहरण के लिए:

https://raw.githubusercontent.com/git/git/v2.17.1/contrib/completion/git-completion.bash

ध्यान दें कि इसके v2.17.बजाय URL में है master। और फिर, निश्चित रूप से, स्रोत को बैश स्टार्टअप स्क्रिप्ट में सुनिश्चित करें।


यह सबसे अच्छा macOS उत्तर है।
एएसएचली

वाह ... लगभग एक घंटे के बाद इस पर मेरे दिमाग को कोसने के बाद, आपकी टिप्पणी की कुंजी थी। इस समाधान के लिए धन्यवाद! स्वर्ण!
मायके कार्टर

4
मैकोस संस्करण-विशिष्ट फ़ाइल पहले से ही यहां डिस्क पर होनी चाहिए: /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bashबस सुरक्षित होने के लिए मैंने इसे जीथब पर 2.17.1 संस्करण के साथ अलग किया और यह मेल खाता है।
शाम

18

उबंटू 14.10

स्थापित करें git-coreऔरbash-completion

sudo apt-get install -y git-core bash-completion
  • वर्तमान सत्र उपयोग के लिए

    source /usr/share/bash-completion/completions/git
  • यह सभी सत्रों के लिए हमेशा होता है

    echo "source /usr/share/bash-completion/completions/git" >> ~/.bashrc

1
धन्यवाद, इसने मेरे लिए उबंटू में 16.04 LTS :)
मृणाल पगनिस


5

बस अपने में यह करो ~/.bashrc:

source /usr/share/bash-completion/completions/git

अन्य उत्तर आपको स्थापित करने के लिए कह रहे हैं bash-completion, आपको ऐसा करने की आवश्यकता नहीं है, लेकिन यदि आप करते हैं, तो सीधे पूरा करने के लिए कोई स्रोत नहीं है। आप एक या दूसरे को करते हैं, दोनों को नहीं।

एक और अधिक सामान्य समाधान सिस्टम स्थान को bash-पूर्ण परियोजना द्वारा अनुशंसित के रूप में उद्धृत कर रहा है:

source "$(pkg-config --variable=completionsdir bash-completion)"/git

1
आपके सामान्य समाधान ने उबंटू 18.04 पर मेरे लिए पूरी तरह से काम किया। बूट करने के लिए, आपका तरीका बेहद संक्षिप्त है - धन्यवाद!
जेसन आर स्टीवंस CFA

4

मेरे ubuntu पर यहाँ एक फ़ाइल स्थापित है:

source /etc/bash_completion.d/git-prompt

आप /usr/lib/git-coreफ़ोल्डर में लिंक का अनुसरण कर सकते हैं । आप वहां एक निर्देश पा सकते हैं, पीएस 1 कैसे सेट करें या उपयोग करें__git_ps1


3

किसी के लिए सहायक हो सकता है: -

निम्न लिंक से .git-पूरा करने के बाद डाउनलोड करें।

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash

और __git_ps1 फ़ंक्शन का उपयोग करने की कोशिश कर रहा हूं, मुझे त्रुटि मिल रही है--

 -bash: __git_ps1: command not found

जाहिरा तौर पर हमें इस आदेश को काम करने के लिए मास्टर से अलग से स्क्रिप्ट डाउनलोड करने की आवश्यकता है, क्योंकि __git_ps1 को git-prompt.sh में परिभाषित किया गया है। तो डाउनलोड करने के लिए इसी तरह। .It-पूरा करना। बकवास, git-prompt.sh प्राप्त करें:

curl -L https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh > ~/.bash_git

और फिर अपने .bash_profile में निम्नलिखित जोड़ें

source ~/.bash_git
if [ -f ~/.git-completion.bash ]; then
  . ~/.git-completion.bash
export PS1='\W$(__git_ps1 "[%s]")>'
fi

स्रोत ~ / .bash.git डाउनलोड की गई फ़ाइल को निष्पादित करेगा और

export PS1='\W$(__git_ps1 "[%s]") कमांड वर्तमान वर्किंग डायरेक्टरी (यदि इसका जीआईटी रिपॉजिटरी है) के बाद चेकआउट ब्रांच नाम को जोड़ देगा।

तो ऐसा दिखेगा: -

dir_Name[branch_name] जहाँ dir_Name कार्यशील निर्देशिका का नाम है और शाखा_नाम उस शाखा का नाम होगा जिस पर आप वर्तमान में काम कर रहे हैं।

कृपया ध्यान दें - __git_ps1 मामला संवेदनशील है।


1

आर्क लिनक्स

/usr/share/git/completion/git-completion.bashबैश स्टार्टअप फ़ाइलों में से एक में स्रोत ।

उदाहरण के लिए:

# ~/.bashrc

source /usr/share/git/completion/git-completion.bash

आप अन्य स्थानों की तरह स्क्रिप्ट ढूंढने में सक्षम हो सकते हैं, /usr/share/bash-completion/completions/gitलेकिन ये स्क्रिप्ट मेरे काम नहीं आई।


-1

उबंटू

यहां एक खूबसूरत जवाब है । मेरे लिए Ubuntu 16.04 पर काम किया

खिड़कियाँ

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


-1

गिट प्रोजेक्ट में गीथूब पर, वे स्वतः पूर्ण git आदेशों के लिए एक bash फ़ाइल प्रदान करते हैं।

आपको इसे होम डायरेक्टरी में डाउनलोड करना चाहिए और आपको इसे चलाने के लिए बैश करने के लिए बाध्य करना चाहिए। यह निम्नलिखित ब्लॉग पोस्ट में केवल दो चरण और पूरी तरह से समझाया गया है (चरण दर चरण)।

कोड-बैरियर ब्लॉग: स्वतः पूर्ण-गिट /

मैंने इसे मैक पर परीक्षण किया है, इसे अन्य प्रणालियों पर भी काम करना चाहिए। आप अन्य ऑपरेटिंग सिस्टम के लिए एक ही दृष्टिकोण लागू कर सकते हैं।

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