macos Sierra 10.12.6 üzerinde hata üreten .git-tamamlama.


40

Https://medium.com/@farooqyousuf/autocomplete-git-commands-and-branch-names-in-terminal-on-mac-os-x-4e0beac0388a adresindegit-completion verilen açıklama uyarınca süreci takip ettim :

İlk adım bu komutu terminal pencerenizde çalıştırmaktır, bu temelde 'git-completeion.bash' betiğini alıp ana dizininize koymaktır.

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

Şimdi bu satırı '~ / .bash_profile' e ekleyin. Bu, eğer varsa git otomatik tamamlama komut dosyasının yürütülmesine izin verecektir

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

Artık tüm terminal pencerelerinizi yeniden başlatabilir veya bu betiği kullanmak istediğiniz terminal penceresini yenileyebilirsiniz. Yenilemek için:

source ~/.bash_profile

Aşağıdaki, tabyazdıktan sonra tuşa basarken elde ettiğim hatadır 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'in hangi sürümü yiuy kullanıyor ve bash_completion hangi sürümü istiyor?
user151019

git version 2.17.1
Rishi Kulshreshtha

Aynı şeyi Mac ve Ubuntu'da da alıyorum. git sürüm 2.4.7 ve 2.17.
wisbucky

Yanıtlar:


55

Ben de aynı problemle karşılaştım. Biraz kazdıktan sonra, nihayet kök sorununun ne olduğunu çözdüm.

git-completion.bashGit v2.18'de yeni bir özellik gerektiren komut dosyasında bazı önemli değişiklikler yaptılar --list-cmds. Sorun şu ki, paket yöneticilerinden hiçbiri git v2.18'e güncellemedi.

Buradaki talimatların çoğu raw.githubusercontent.com/git/git/ master/contrib/completion/git-completion.bash adresinin indirildiğini söylüyor . Ancak bu mutlaka en iyi seçenek değildir, çünkü bazen git-completion.bashgit sürümünüzden daha yeni bir dosya indirirsiniz .

Dolayısıyla çözüm git-completion.bashgit sürümünüze uyan sürümü indirmektir . Sonra tekrar kaynak. Bu durumda:

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

v2.17.1Bunun yerine referans olduğuna dikkat edin master. Daha sonra git v2.18'i kurduğunuzda, tekrar masterveya v2.18etiketine geçebilirsiniz .


2
Bir ton teşekkürler! Daha git-completion.bashönce çalıştığını hatırladığım gibi benzer bir çözüm arıyordum .
Rishi Kulshreshtha

2
Fan-kanlı-tastik
bhu Boue vidya

Bu sürüm izleme sorununu çözer - stackoverflow.com/a/18898614/1874627
saurabheights

3

Git'i en son sürüme yükseltmek en basit çözümdür. https://git-scm.com/download/mac

Bundan sonra adımları takip ettiğinizden emin olun.

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

  2. Bu küçük komutu .bash_profiledosyaya ekleif [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi


2

Kaynaktan inşa etmeyin; bunun yerine MacPorts'tan yükleyin .

Git'i otomatik tamamlama ile kurmak için aşağıdaki komutu verin:

 $ sudo port install git +bash_completion

Terminalinizi kapatıp yeniden açın ve git tamamlama çalışması gerekir


Bunu denedim ama sorunu çözmedim. Hala aynı.
Rishi Kulshreshtha

Bu komutu verin: sudo find / -type -name "git-completion.bash"ve sonuçları sorunuza gönderin.
Allan

1

Git sürümünüzü doğrulamanız ve en az 1.8 olarak güncellendiğinden emin olmalısınız.

Eski bir sürüm 1.7.11 vardı ama bu işe yaramadı ve aynı hatayı aldım.


git version 2.17.1
Rishi Kulshreshtha

0

Homebrew kullanıyorsanız, kullanmak isteyebilirsiniz.

  1. Git yükseltme:

    brew upgrade git

  2. yüklenen git-completeion.bash’ı kendi kaynaklarınızda kullanın ~/.bash_profile:

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

Bu, yüklü git ve tamamlama komut dosyası sürümlerinin eşleşmesini sağlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.