.git-xong.bash tạo lỗi trên macOS Sierra 10.12.6


40

Tôi đã làm theo quy trình git-completiontheo mô tả được cung cấp tại https://medium.com/@farooqyousuf/autocomplete-git-commands-and-branch-names-in-terminal-on-mac-os-x-4e0beac0388a :

Bước đầu tiên là thực thi lệnh này trong cửa sổ terminal của bạn, về cơ bản là lấy tập lệnh 'git-xong.bash' và đưa nó vào thư mục chính của bạn.

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

Bây giờ thêm dòng này vào '~ / .bash_profile' của bạn. Điều này sẽ cho phép thực thi tập lệnh tự động hoàn thành git nếu nó xuất hiện

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

Bây giờ bạn có thể khởi động lại tất cả các cửa sổ đầu cuối của mình hoặc chỉ cần làm mới cửa sổ đầu cuối mà bạn muốn sử dụng tập lệnh này. Để làm mới:

source ~/.bash_profile

Sau đây là lỗi tôi gặp phải khi nhấn tabphím sau khi gõ 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>]

Phiên bản git nào bạn đang sử dụng và bash_completion yêu cầu phiên bản nào?
dùng151019

git version 2.17.1
Rishi Kulshreshtha

Tôi cũng nhận được điều tương tự trên Mac và Ubuntu. phiên bản git 2.4.7 và 2.17.
wvducky

Câu trả lời:


55

Tôi chạy vào cùng một vấn đề chính xác. Sau khi đào một số, cuối cùng tôi đã tìm ra vấn đề gốc là gì.

Họ đã thực hiện một số thay đổi lớn đối với git-completion.bashtập lệnh yêu cầu một tính năng mới trong git v2.18 , --list-cmds. Vấn đề là chưa có người quản lý gói nào cập nhật lên git v2.18.

Hầu hết các hướng dẫn ngoài kia nói rằng hãy tải raw.githubusercontent.com/git/git/ master/contrib/completion/git-completion.bash. Nhưng đó không nhất thiết là lựa chọn tốt nhất vì đôi khi bạn sẽ tải xuống phiên bản mới git-completion.bashhơn phiên bản hỗ trợ git của mình.

Vì vậy, giải pháp là tải xuống git-completion.bashphiên bản phù hợp với phiên bản git của bạn. Sau đó, nguồn một lần nữa. Trong trường hợp này:

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

Lưu ý rằng nó là tham chiếu v2.17.1thay vì master. Sau này, khi bạn cài đặt git v2.18, sau đó bạn có thể chuyển về masterhoặc v2.18gắn thẻ.


2
Cảm ơn rất nhiều !! Tôi đang tìm kiếm giải pháp tương tự, vì tôi nhớ rằng git-completion.bashđã làm việc trước đó.
Rishi Kulshreshtha

2
Fan-Bloody-tastic
bhu Boue vidya

Điều này giải quyết vấn đề theo dõi phiên bản - stackoverflow.com/a/18898614/1874627
saurabheights

3

Nâng cấp git lên phiên bản mới nhất là giải pháp đơn giản nhất. https://git-scm.com/doad/mac

Sau đó, đảm bảo bạn làm theo các bước

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

  2. Thêm lệnh nhỏ này vào .bash_profiletập tin if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi


2

Đừng xây dựng nó từ nguồn; thay vì cài đặt từ MacPorts .

Để cài đặt git với tự động hoàn thành, hãy ra lệnh sau:

 $ sudo port install git +bash_completion

đóng và mở lại Terminal và hoàn thành git của bạn sẽ hoạt động


Tôi đã thử điều này nhưng không giải quyết được vấn đề. Nó vẫn vậy.
Rishi Kulshreshtha

Ban hành lệnh này: sudo find / -type -name "git-completion.bash"và gửi kết quả cho câu hỏi của bạn.
Allan

1

Bạn nên xác minh phiên bản git của mình và đảm bảo rằng nó được cập nhật lên ít nhất 1.8.

Tôi đã có phiên bản cũ hơn 1.7.11 nhưng nó không hoạt động và gặp lỗi tương tự như bạn.


git version 2.17.1
Rishi Kulshreshtha

0

Nếu bạn sử dụng Homebrew, bạn có thể muốn

  1. nâng cấp git:

    brew upgrade git

  2. nguồn git-xong.bash đã cài đặt trong ~/.bash_profile:

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

Điều này đảm bảo các phiên bản tập lệnh git và hoàn thành đã cài đặt khớp với nhau.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.