git-completion.bash
'ma /opt/local/etc/bash_completion.d/git-completion
eklemek için http://blog.bitfluent.com/post/27983389/git-utilities-you-cant-live-without 'u takip ettim.
ve .bashrc_profile dosyama PS1='\h:\W$(__git_ps1 "(%s)") \u\$ '
ekledim
Ama şimdi bu -bash: __git_ps1: command not found
her şeyi alıyorum, cd
.
Bana ne kaçırdığımı söyler misin lütfen?
Git yeni Snow Leopard kurulumuma MacPorts kullanarak yükledim. MacPorts .dmg görüntüsünden yüklendikten sonra, bunlar Terminal.app'deki komutlardır:
Sudo port selfupdate
Sudo port install git-core +bash_completion
Ayrıca SVN depolarından ve dokümanlardan bilgi almak için destek almak istiyorsanız, ikinci satır yerine bunu kullanın:
Sudo port install git-core +bash_completion +doc +svn
Ardından ~/.profile veya ~/.bash_profile dosyasına aşağıdakileri ekleyin:
# MacPorts Bash Kabuğu komutunun tamamlanması Eğer [-f/opt/local/etc/bash_completion]; sonra . /opt/local/etc/bash_completion fi
veya Mountain Lion'daki 2.1.2 sürümünden bu yana MacPorts için:
# MacPorts Bash Kabuğu komutunun tamamlanması İf [-f /opt/local/etc/profile.d/bash_completion.sh]; sonra . /opt/local/etc/profile.d/bash_completion.sh fi
veya daha yeni git sürümlerine sahip MacPorts için:
eğer [-f /opt/local/share/git-core/git-Prompt.sh]; sonra . /opt/local/share/git-core/git-Prompt.sh fi
Not: bash_completion.sh tarafından bash 4.1 veya daha üstü gerekir. Tamamlama işe yaramazsa, sorunun bu olup olmadığını görmek için echo $BASH_VERSION
dosyasını deneyin. Öyleyse, bash
yazarak MacPorts bash yazın ve git işlemini tekrar deneyin.
Git'i homebrew kullanarak yüklediyseniz, MacPorts tavsiyesini biraz ayarlayabilir ve bunu .bash_profile
ve .bashrc
if [ -f `brew --prefix`/etc/bash_completion.d/git-completion.bash ]; then
. `brew --prefix`/etc/bash_completion.d/git-completion.bash
fi
Git homebrew kullanarak doğru yüklenip yüklenmediğini kontrol etmenin en iyi yolu
brew info git
ve git bash tamamlamanın kurulum dizini için çıktıyı kontrol edin.
Git'in son sürümü (1.7.12) de İstemi etkinleştirmek için aşağıdakileri gerektirir.
if [ -f `brew --prefix`/etc/bash_completion.d/git-Prompt.sh ]; then
. `brew --prefix`/etc/bash_completion.d/git-Prompt.sh
fi
Yapmanız gereken tek şey git-completion.bash
dosyasını kullanıcı ana sayfa bin
dizinine yerleştirin ve aşağıdakileri .profile
veya .bash_profile
dosyasına yerleştirin:
export PATH="$HOME/bin:$PATH"
source ~/bin/git-completion.bash
PS1='[\[email protected]\h \w$(__git_ps1 " (%s)")]\$ '
Bunun yaptığı şey, yerel çöp kutunuzun PATH içinde olduğundan ve source
komutunun işlerin başladığından emin olmaktır. Ardından PS1 değişikliği, şu anda kullanıma alınmış şubeyi İstem'e koyar.
Bu nedenle, GIT'nin "tamamlama" versiyonunu yüklemek için hiçbir MacPort kurulumu yapılmaz (özellikle kurulu ise tahriş edicidir).
Mevcut cevap eski MacPorts için doğru olsa da, aynı hatayla sonuçlanan en güncel MacPorts ile ilgili yeni bir sorun var.
Geçerli bash tamamlama paketi (2.0 r1) düzgün çalışması için en az bir bash 4.1 gerektirir. Her zamanki gibi bir OS X Terminal /bin/bash
kullanır, sadece 3.x alır. MacPorts belgelerinde açıklandığı gibi /opt/local/bin/bash -l
işlevini kullanmanız için terminal ayarlarınızı değiştirmeniz gerekir: http://trac.macports.org/wiki/howto/bash-completion
Komut tamamlama işlevlerini kaynaklamanız gerekir. PS1'den önce .bashrc_profile dosyasına ekleyin:
. /opt/local/etc/bash_completion.d/git-completion
Can sıkıcı bir şekilde, bu yine kırıldı. Bu sefer onun git 1.7.12-1 sürümü ile millet. İnsanların tamamlama işlevi olmadan yalnızca İstemci işlevine sahip olmalarını sağlamak için (bu, işleri yavaşlatabilir), İstemci işlevini bash_completion/git'in dışına ve git-Prompt.sh dosyasının kendi dosyasına dönüştürdü.
Yani bash_completion @Lara tarafından tanımlandığı şekilde eklemek, sadece tamamlamanızı sağlar (isabet sekmesi etiket/dal adlarını tamamlar).
__git_ps1
öğesini almak için, PS1 İsteminizde kullanabilirsiniz, ayrıca ~/.profile dosyasına aşağıdakileri de eklemeniz gerekir.
. /opt/local/share/doc/git-core/contrib/completion/git-Prompt.sh
Bazı arka plan burada - https://bbs.archlinux.org/viewtopic.php?pid=1163632#p1163632
Veya Homebrew ile
brew install bash-completion git-extras
Benzer bir soru için bir çözüm buldum :
git-osx-installergit-completion.bash
ile birlikte gelir ve /usr/local/git/contrib/completion/
öğesine yükler. .bash_profile
dosyasını almak için o dosyayı __git_ps1
adresinden kaynaklayın.
Mountain Lion ve Mac-Port'lar için .bash_profile dosyamda aşağıdaki satırları kullanmam gerekiyordu. Hem __git_ps1 hem de tamamlamaları normal şekilde çalışması için:
# Bash Shell command completion
if [ -f /opt/local/share/doc/git-core/contrib/completion/git-completion.bash ]; then
. /opt/local/share/doc/git-core/contrib/completion/git-completion.bash
fi
if [ -f /opt/local/share/doc/git-core/contrib/completion/git-Prompt.sh ]; then
. /opt/local/share/doc/git-core/contrib/completion/git-Prompt.sh
fi
Ben demlemek kullanıyorum, bu yüzden bash_completion
içindeki hepsini çalıştıran bir ana bash_completion.d
betiği sunulmuyor gibi görünüyor. Git tamamlamaları eklemek için yalnızca tek bir komut dosyası çalıştırmayı öneren çözümler genişletilemez, çünkü farklı paketler farklı tamamlama komut dosyaları ekler ve muhtemelen hepsini çalıştırmak istersiniz. Bu yüzden bunu (Arch Linux'tan uyarlanmış) /etc/bashrc
sonuna ekledim:
# source compat completion directory definitions
BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
if [[ -d $BASH_COMPLETION_COMPAT_DIR && -r $BASH_COMPLETION_COMPAT_DIR && \
-x $BASH_COMPLETION_COMPAT_DIR ]]; then
for i in $(LC_ALL=C command ls "$BASH_COMPLETION_COMPAT_DIR"); do
i=$BASH_COMPLETION_COMPAT_DIR/$i
[[ -f $i && -r $i ]] && . "$i"
done
fi
En azından Xcode 6 ile, zaten git-completion.bash
adresiniz var. Xcode uygulama paketinin içinde.
Bunu sadece .bashrc'nize ekleyin:
source `xcode-select -p`/usr/share/git-core/git-completion.bash
Adam K. Johnson'ın gönderisine ek olarak
Ayrıca aşağıdakileri de koyabilirsiniz ...
# MacPorts Bash Shell command completion
if [ -f /opt/local/etc/bash_completion ]; then
. /opt/local/etc/bash_completion
fi
... isterseniz,/etc/profilinizde.
Bu yolla sistemdeki tüm kullanıcılar "/opt/local/etc/bash_completion.d/" dizininde kurulu olan bash tamamlama komut dosyalarından faydalanacaktır.
2011'deki grundprinzip tarafından verilen cevap hala iyi çalışsa da, şimdi bir Homebrew paketi olduğuna dair daha yeni bir cevap eklemek istedim bash-tamamlama ( formula , repo ) bu daha da kolaylaştırır. (Bu, git gibi diğer ortak araçların tamamlanmasını da içerir.)
Bugün macOS Bash 3 ile birlikte gelir, ancak Bash 4'ü almak için brew install bash
komutunu kullanabilirsiniz. Bash 4 kullanıyorsanız, bash-tamamlamanın daha yeni 2.x dalını kurun.
Koşmak:
brew install [email protected]
~/.bash_profile
'a ekle:
if [ -f /usr/local/share/bash-completion/bash_completion ]; then
. /usr/local/share/bash-completion/bash_completion
fi
MacOS'ta hisse senedi bash 3.x ile yapıştırmak istiyorsanız, bunun yerine bu yönergeleri izleyin.
Koşmak:
brew install bash-completion
~/.bash_profile
'a ekle:
echo "[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion" >> ~/.bash_profile
Referans: http://davidalger.com/development/bash-completion-on-os-x-with-brew/