.OS को पूरा करना। मैक को सिएरा 10.12.6 पर उत्पादन त्रुटि


40

मैंने https://medium.com/@farooqyousuf/autocomplete-git-commands-and-branch-names-in-terminal-on-mac-os-x-4e0beac0388agit-completion पर दिए गए वर्णन के अनुसार प्रक्रिया का पालन किया है :

अपनी टर्मिनल विंडो में इस कमांड को निष्पादित करने के लिए पहला कदम है, यह मूल रूप से 'git-पूर्ण.बैश' स्क्रिप्ट को पकड़कर अपने होम डायरेक्टरी में डाल रहा है।

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

अब आप अपनी सभी टर्मिनल विंडो को फिर से शुरू कर सकते हैं या इस स्क्रिप्ट का उपयोग करने की इच्छा रखने वाली टर्मिनल विंडो को ताज़ा कर सकते हैं।

source ~/.bash_profile

tabटाइप करने के बाद कुंजी मारते समय मुझे जो त्रुटि हो रही है, वह है git:

unknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
  [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
  [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
  [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
  <command> [<args>]

Gy के किस संस्करण का उपयोग कर रहे हैं और bash_completion किस संस्करण के लिए पूछते हैं?
user151019


मैं मैक और उबंटू पर भी ऐसा ही कर रहा हूं। git संस्करण 2.4.7 और 2.17।
वारबंकी

जवाबों:


55

मैं उसी समस्या में भाग गया। कुछ खुदाई के बाद, मुझे अंत में पता चला कि मूल समस्या क्या है।

उन्होंने git-completion.bashस्क्रिप्ट में कुछ बड़े बदलाव किए जिन्हें git v2.18 में एक नई सुविधा की आवश्यकता है --list-cmds। समस्या यह है कि अभी तक पैकेज प्रबंधकों में से किसी ने भी v2.18 को अपडेट नहीं किया है।

वहां से अधिकांश निर्देश कच्चे master.githubusercontent.com / git/ git // contrib/ completion/ git- completion.bash डाउनलोड करने के लिए कहते हैं । लेकिन यह जरूरी नहीं है कि सबसे अच्छा विकल्प है क्योंकि कभी-कभी आप git-completion.bashअपने संस्करण के गिट समर्थन से एक नया डाउनलोड करेंगे ।

तो समाधान यह है git-completion.bashकि वह संस्करण डाउनलोड करें जो आपके गिट संस्करण से मेल खाता हो। फिर इसे फिर से स्रोत। इस मामले में:

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

ध्यान दें कि यह v2.17.1इसके बजाय संदर्भित है master। बाद में, जब आप git v2.18 इंस्टॉल करते हैं, तो आप वापस स्विच masterया v2.18टैग कर सकते हैं ।


2
अनेक अनेक धन्यवाद!! मैं उसी तरह के समाधान की तलाश में था, जैसा कि मुझे याद है कि git-completion.bashपहले काम कर रहा था।
ऋषि कुलश्रेष्ठ

2
फैन-खूनी-
इलास्टिक

यह संस्करण ट्रैकिंग के मुद्दे को हल करता है - stackoverflow.com/a/18898614/1874627
saurabheights

3

नवीनतम संस्करण में गिट को अपग्रेड करना सबसे सरल उपाय है। https://git-scm.com/download/mac

उसके बाद सुनिश्चित करें कि आप चरणों का पालन करते हैं

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

  2. इस छोटे कमांड को .bash_profileफाइल में जोड़ेंif [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi


2

स्रोत से इसका निर्माण न करें; इसके बजाय MacPorts से इंस्टॉल करें ।

स्वतः पूर्णता के साथ गिट स्थापित करने के लिए, निम्नलिखित आदेश जारी करें:

 $ sudo port install git +bash_completion

अपने टर्मिनल को बंद करें और फिर से खोलें और काम पूरा होना चाहिए


मैंने यह कोशिश की है, लेकिन इस मुद्दे को हल नहीं किया। यह अभी भी वैसा ही है।
ऋषि कुलश्रेष्ठ

इस आदेश को जारी करें: sudo find / -type -name "git-completion.bash"और अपने प्रश्न के परिणाम पोस्ट करें।
एलन

1

आपको अपने गिट संस्करण को सत्यापित करना चाहिए और यह सुनिश्चित करना चाहिए कि यह कम से कम 1.8 में अपडेट हो।

मेरे पास एक पुराना संस्करण था 1.7.11 लेकिन यह काम नहीं किया और आपको वही त्रुटि मिली।



0

यदि आप Homebrew का उपयोग करते हैं, तो आप कर सकते हैं

  1. अपग्रेड git:

    brew upgrade git

  2. आपके द्वारा स्थापित git-complete.bash स्रोत ~/.bash_profile:

    . /usr/local/etc/bash_completion.d/git-completion.bash

यह सुनिश्चित करता है कि स्थापित git और पूर्ण स्क्रिप्ट संस्करण मेल खाते हैं।

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