Git bash komut satırı tamamlama nasıl yapılandırılır?


131

Örneğin, yeni bir ubuntu makinesinde, sadece çalıştırdım sudo apt-get gitve örneğin yazarken tamamlanma yok git check[tab].

Http://git-scm.com/docs adresinde hiçbir şey bulamadım , ancak IIRC tamamlama bu günlerde git paketine dahil edildi ve bashrc'imde doğru girdiye ihtiyacım var.


Ubuntu Precise'da (ve Fedora 17) kutudan çıktığı gibi benim için çalışıyor.
Mechanical snail

2
Varsayılan olarak sahip olup olmadığınızı kontrol etmek için çalıştırabilirsiniz (cd ~ && exec cat .bashrc | grep completion).
aderchox

Yanıtlar:


183

Linux'ta

çoğu dağıtımda git tamamlama betiği git'i kurduğunuzda /etc/bash_completion.d/(veya /usr/share/bash-completion/completions/git) içine yüklenir, github'a gitmeye gerek yoktur. Sadece kullanmanız gerekiyor - bu satırı şuraya ekleyin .bashrc:

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

Ubuntu'nun bazı sürümlerinde, git otomatik tamamlama varsayılan olarak bozuk olabilir, bu komutu çalıştırarak yeniden yükleme sorunu düzeltmelidir:

sudo apt-get install git-core bash-completion

Mac'te

Git tamamlamayı Homebrew veya MacPorts kullanarak kurabilirsiniz.

ev yapımı içki

if $BASH_VERSION> 4: brew install bash-completion@2(güncellenmiş sürüm) Sahip olduğunuz bash sürümüne özel dikkat gösterin, MacOS varsayılanı 3.2.57 (1) -release ile birlikte gelir.

ekle .bash_profile:

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

Bash'ın eski sürümleri için: brew install bash-completion

ekle .bash_profile:

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

MacPorts

sudo port install git +bash_completion

sonra şunu ekleyin .bash_profile:

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

bu kılavuzda daha fazla bilgi: Bash git tamamlamayı yükleyin

Her durumda, değişikliklerin etkili olması için yeni bir kabuk oluşturmanız (yeni bir terminal sekmesi / penceresi açmanız) gerektiğini unutmayın.


1
Çoğu * nix kutusu (özellikle Ubuntu) bu dosyaya zaten sahip, bu yüzden onu kullanıcıma tedarik etmek sorunumu çözdü. Teşekkürler.
2013

5
ubuntu bunu /etc/bash_completion.d/git-prompt olarak alabilir
Catskul

2
Git'im var ama /etc/bash_completion.d yok
sixty4bit

15
Ubuntu 14.04'ümde bu dosya /usr/share/bash-completion/completions/git. /etc/bash_completion.d/git-promptgit komut istemi desteği için kullanılır, tamamlama için değil.
Ray Chen

18
UYARI: homebrewleri yapmak aracılığıyla git yüklü olup olmadığını Mac homebrew yöntem yalnızca çalışır brew uninstall bash-completionsonra brew install gitsen git önce başka bir yöntemle yüklü olsaydı, o zaman yukarıdaki adımlar çalışacaktır.
patapouf_ai

66

aynı sorunu yaşadım, aşağıdaki adımları takip ettim:

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

ardından aşağıdaki satırları ekleyin .bash_profile(genellikle ana klasörünüzün altında)

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

kaynak: http://code-worrier.com/blog/autocomplete-git/


Bir proxy'nin arkasındaydım, bu yüzden curl'nin çalışması için önce proxy'yi ayarlamam gerekiyordu, export https_proxy=proxy_ip:proxy_portgerçekten neden ayarları sistemden almadığını anlamıyorum.
madlymad

2
o dosyayı adının önünde bir nokta ile gizlemek gerçekten gerekli değildir. Ayrıca: git sürümlerine dikkat edin (wisbucky'nin cevabına bakın)
Walter Tross

42

Gördüğünüz talimatların çoğu size indirmenizi söyleyecektir

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

ve bunu bash başlangıç ​​betiğinizdeki gibi .bashrc.

Ancak bununla ilgili bir sorun var, çünkü masterson versiyonu olan şubeye atıfta bulunuyor git-completion.bash. Sorun şu ki, yüklediğiniz git sürümüyle uyumlu olmadığı için bazen bozulacak.

Aslında, şu anda bu durum bozulacak çünkü masterşubenin git-completion.bashgit v2.18'i gerektiren yeni özellikleri var, paket yöneticilerinin ve yükleyicilerin hiçbiri henüz güncellemedi. Bir hata alacaksınunknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config

Dolayısıyla en güvenli çözüm, yüklediğiniz git ile eşleşen sürüme / etikete başvurmaktır. Örneğin:

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

v2.17.Bunun yerine URL'de bir yer aldığını unutmayın master. Ve sonra, tabii ki, bunu bash başlangıç ​​betiğinde kaynakladığınızdan emin olun.


Bu, en iyi macOS cevabıdır.
AShelly

Vay canına ... Bir saat kadar beynimi bunun üzerine vurduktan sonra, yorumunuz anahtar rol oynadı. Bu çözüm için teşekkürler! Altın!
Myke Carter

4
Macos sürümüne özgü dosya zaten burada diskte olmalıdır: /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bashGüvende olmak için github'daki 2.17.1 sürümüyle farklılaştım ve eşleşti.
jmt

18

Ubuntu 14.10

Kurun git-corevebash-completion

sudo apt-get install -y git-core bash-completion
  • Mevcut oturum kullanımı için

    source /usr/share/bash-completion/completions/git
  • Tüm oturumlarda her zaman açık olmasını sağlamak

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

1
Teşekkür ederim, bu benim için Ubuntu 16.04
LTS'de


6

Bunu şu şekilde yap ~/.bashrc:

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

Diğer cevaplar size yüklemenizi söylüyor bash-completion, bunu yapmanız gerekmez, ancak yaparsanız, tamamlamayı doğrudan kaynaklamaya gerek yoktur. Birini ya da diğerini yaparsın, ikisini birden değil.

Daha genel bir çözüm, bash-tamamlama projesinin önerdiği şekilde sistem konumunu sorgulamaktır:

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

1
Jenerik çözümünüz benim için Ubuntu 18.04'te mükemmel çalıştı. Önyükleme için, yönteminiz son derece özlü - teşekkürler!
Jason R Stevens CFA

4

ubuntu'mda burada yüklü bir dosya var:

source /etc/bash_completion.d/git-prompt

/usr/lib/git-coreKlasördeki bağlantıları takip edebilirsiniz . Orada bir talimat, PS1'in nasıl kurulacağını veya kullanılacağını bulabilirsiniz.__git_ps1


3

Birisine yardımcı olabilir: -

.Git-complete.bash dosyasını aşağıdaki bağlantıdan indirdikten sonra,

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

ve __git_ps1 işlevini kullanmaya çalışırken hata alıyordum--

 -bash: __git_ps1: command not found

Görünüşe göre, __git_ps1 git-prompt.sh içinde tanımlandığı gibi, bu komutun çalışması için komut dosyalarını master'dan ayrı indirmemiz gerekiyor. .Git-complete.bash'i indirmeye benzer şekilde git-prompt.sh dosyasını alın:

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

ve sonra .bash_profile dosyanıza aşağıdakileri ekleyin

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

source ~ / .bash.git indirilen dosyayı çalıştıracak ve

export PS1='\W$(__git_ps1 "[%s]") command teslim alma şube adını geçerli çalışma dizininin (bir git deposuysa) sonrasına ekleyecektir.

Yani şöyle görünecek: -

dir_Name[branch_name] burada dir_Name, çalışma dizininin adıdır ve dal_adı, şu anda üzerinde çalıştığınız dalın adı olacaktır.

Lütfen unutmayın - __git_ps1 büyük / küçük harfe duyarlıdır.


1

Arch Linux

/usr/share/git/completion/git-completion.bashBash başlangıç ​​dosyalarından birindeki kaynak .

Örneğin:

# ~/.bashrc

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

Senaryoyu başka yerlerde bulabilirsin /usr/share/bash-completion/completions/gitama bu betikler benim için çalışmadı.


-1

Ubuntu

Burada güzel bir cevap var . Ubuntu 16.04'te benim için çalıştı

pencereler

Git Bash , otomatik tamamlamaya izin veren araçtır. Bunun standart dağıtımın bir parçası olup olmadığından emin olmadığından, bu bağlantıyı da yararlı bulabilirsin . Bu arada Git Bash , Windows üzerinde çalışmak için Linux kabuk komutlarının kullanılmasına izin veriyor ve bu, GNU / Linux ortamında deneyime sahip kişiler için harika bir şey.


-1

Git projesindeki Github'da git komutlarını otomatik olarak tamamlamak için bir bash dosyası sağlarlar.

Ana dizine indirmeli ve bash'ı çalıştırmaya zorlamalısınız. Bu iki adımdan ibarettir ve aşağıdaki blog yazısında mükemmel bir şekilde açıklanmıştır (adım adım).

code-worrier blogu: autocomplete-git /

Mac'te test ettim, diğer sistemlerde de çalışması gerekiyor. Aynı yaklaşımı diğer işletim sistemlerine de uygulayabilirsiniz.

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.