.git-completion.bash เกิดข้อผิดพลาดใน macOS Sierra 10.12.6


40

ผมได้ทำตามขั้นตอนในการgit-completionตามคำอธิบายที่มีให้ ณhttps://medium.com/@farooqyousuf/autocomplete-git-commands-and-branch-names-in-terminal-on-mac-os-x-4e0beac0388a :

ขั้นตอนแรกคือการดำเนินการคำสั่งนี้ในหน้าต่างเทอร์มินัลของคุณโดยทั่วไปแล้วจะคว้าสคริปต์ 'git-completion.bash' และวางไว้ในไดเรกทอรีบ้านของคุณ

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

ตอนนี้เพิ่มบรรทัดนี้ใน '~ / .bash_profile' ของคุณ วิธีนี้จะช่วยให้การเรียกใช้สคริปต์เติมข้อความอัตโนมัติของ git นั้นมีอยู่

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>]

รุ่นของ git คือ yiuy ที่ใช้และ bash_completion รุ่นใดที่ขอ?
user151019

git version 2.17.1
ฤRษี Kulshreshtha

ฉันได้รับเหมือนกันใน Mac และ Ubuntu ด้วย git เวอร์ชั่น 2.4.7 และ 2.17
wisbucky

คำตอบ:


55

ฉันพบปัญหาเดียวกันนี้ ในที่สุดหลังจากการขุดผมก็พบว่าปัญหารากคืออะไร

พวกเขาทำให้การเปลี่ยนแปลงที่สำคัญบางอย่างเพื่อgit-completion.bashสคริปต์ซึ่งจะต้องมีคุณลักษณะใหม่ใน v2.18 --list-cmdsคอมไพล์ ปัญหาคือไม่มีผู้จัดการแพ็คเกจที่อัปเดตเป็น git v2.18 เลย

คำแนะนำส่วนใหญ่บอกให้ดาวน์โหลด raw.githubusercontent.com/git/git/ master/contrib/completion/git-completion.bash แต่นั่นไม่ใช่ตัวเลือกที่ดีที่สุดเพราะบางครั้งคุณจะดาวน์โหลดรุ่นใหม่git-completion.bashกว่ารุ่น git ที่คุณรองรับ

ดังนั้นทางออกคือการดาวน์โหลด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กำลังทำงานก่อนหน้านี้
Rishi Kulshreshtha

2
Fan-bloody-tastic
bhu Boue vidya

วิธีนี้ช่วยแก้ไขปัญหาการติดตามเวอร์ชั่น - stackoverflow.com/a/18898614/1874627
saurabheights

3

การอัพเกรด git เป็นเวอร์ชั่นล่าสุดเป็นทางออกที่ง่ายที่สุด 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

ในการติดตั้ง git ด้วยการทำให้สมบูรณ์อัตโนมัติให้ใช้คำสั่งต่อไปนี้:

 $ sudo port install git +bash_completion

ปิดและเปิด Terminal ของคุณใหม่อีกครั้ง


ฉันได้ลองแล้ว แต่ไม่สามารถแก้ปัญหาได้ มันยังคงเหมือนเดิม
ฤRษี Kulshreshtha

ออกคำสั่งนี้ sudo find / -type -name "git-completion.bash"และโพสต์ผลลัพธ์ให้กับคำถามของคุณ
อัลลัน

1

คุณควรตรวจสอบเวอร์ชั่นคอมไพล์และตรวจสอบให้แน่ใจว่าอัปเดตเป็นอย่างน้อย 1.8

ฉันมีรุ่นที่เก่ากว่า 1.7.11 แต่ไม่ได้ผลและมีข้อผิดพลาดเดียวกันกับที่คุณมี


git version 2.17.1
ฤRษี Kulshreshtha

0

หากคุณใช้ Homebrew คุณอาจต้องการ

  1. อัพเกรด git:

    brew upgrade git

  2. แหล่ง git-completion.bash ที่ติดตั้งในแหล่งที่มาของคุณ~/.bash_profile:

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

สิ่งนี้ทำให้แน่ใจว่าเวอร์ชันคอมไพล์และสคริปต์ที่สมบูรณ์ติดตั้งตรงกันแล้ว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.