Tôi đang cố gắng thay đổi lệnh của tôi trong thiết bị đầu cuối. Tôi tiếp tục nhận được lỗi:
-bash: __git_ps1: command not found
Tôi đã thử nó chỉ bằng cách gõ nó vào thiết bị đầu cuối như : __git_ps1
. Tôi cũng đã thử nó trong.bash_profile
if [ -f ~/.git-completion.bash ]; then
source ~/.git-completion.bash
export PS1='[\W]$(__git_ps1 "(%s)"): '
fi
Như bạn có thể thấy / nói, vâng, tôi đã cài đặt tự động hoàn thành và nó hoạt động rất tốt!
Tôi đã gặp câu hỏi này: " Biến env PS1 không hoạt động trên mac " cung cấp mã
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"
Vì vậy, tôi thêm nó vào .bash_profile
hy vọng rằng nó sẽ thay đổi một cái gì đó. Vâng, nó đã làm. Nó chỉ thay đổi đầu ra lỗi.
Đây là .bash_profile
phần bổ sung:
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"
if [ -f ~/.git-completion.bash ]; then
source ~/.git-completion.bash
export PS1='[\W]$(__git_ps1 "(%s)"): '
fi
Và bây giờ đây là đầu ra lỗi đã thay đổi:
sed: (%s): No such file or directory
Lưu ý: Tôi cũng đã di chuyển bí danh bên dưới nguồn không có sự khác biệt. Tôi có phiên bản git 1.7.12.1
Đây phải là một thay đổi đơn giản. Ai đó có thể vui lòng giúp tôi?
Chỉnh sửa 10/13/12
Không, tôi chắc chắn không muốn tự xác định __git_ps1 mà chỉ cố gắng xem liệu nó có được nhận ra hay không bằng cách làm như vậy. Có, tôi đã .git-completion.bash
cài đặt tập tin. Đây là cách tôi đã hoàn thành tự động trên máy của mình.
cd ~
curl -OL https://github.com/git/git/raw/master/contrib/completion/git-completion.bash
mv ~/git.completion.bash ~/.git-completion.bash
A ls -la
sau đó liệt kê các .git-completion.bash
tập tin.
Chỉnh sửa 10/13/12 - Được giải quyết bởi Mark Longair (bên dưới)
Các mã sau đây làm việc cho tôi trong .bash_profile
khi những người khác không ...
if [ -f ~/.git-prompt.sh ]; then
source ~/.git-prompt.sh
export PS1='Geoff[\W]$(__git_ps1 "(%s)"): '
fi
git <tab>
như đã lưu ý trong cam kết được tham chiếu bởi Mark Longair.
git-completion.bash
định nghĩa__git_ps1
là hàm shell. Có phải của bạn không? Làm thế nào để bạn biết hoàn thành là làm việc? Điều gì xảy ra khi bạn nhậpgit h
<TAB>?