Trước tiên, tôi nhập git stash show
.Sự cố tự động hoàn tất khi nhập git stash hiển thị stash @ {1}
Sau đó gõ s và tab, và nó cho thấy git stash show [email protected]{
, cho đến bây giờ nó hoạt động tốt.
Nhưng sau khi tôi gõ và tab, nó becames git stash show [email protected]{1}
, và nó là sai rõ ràng.
Tôi nghĩ rằng có thể có một số sai trong mã sau trong .git-completion.bash, nhưng tôi khó có thể đọc được điều này.
_git_stash()
{
local save_opts='--keep-index --no-keep-index --quiet --patch'
local subcommands='save list show apply clear drop pop create branch'
local subcommand="$(__git_find_on_cmdline "$subcommands")"
if [ -z "$subcommand" ]; then
case "$cur" in
--*)
__gitcomp "$save_opts"
;;
*)
if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then
__gitcomp "$subcommands"
else
COMPREPLY=()
fi
;;
esac
else
case "$subcommand,$cur" in
save,--*)
__gitcomp "$save_opts"
;;
apply,--*|pop,--*)
__gitcomp "--index --quiet"
;;
show,--*|drop,--*|branch,--*)
COMPREPLY=()
;;
show,*|apply,*|drop,*|pop,*|branch,*)
__gitcomp_nl "$(git --git-dir="$(__gitdir)" stash list \
| sed -n -e 's/:.*//p')"
;;
*)
COMPREPLY=()
;;
esac
fi
}
Có ai biết cách khắc phục không?
Phiên bản Bash: GNU bash, phiên bản 4.2.37 (2) -release (i386-apple-darwin12.0.0).
phiên bản git: 1.8.0.3
toàn bộ nguồn: https://gist.github.com/pktangyue/5477924
Tôi đang sử dụng bash '4.1.10 (1) '. Tôi có cùng chức năng hoàn thành được xác định trong '/ etc/bash-completion.d/git-completion.sh' của tôi và hoàn thành hoạt động tốt trên đầu của tôi. Bạn có thể cung cấp chi tiết về phiên bản bash của bạn không? Ngoài ra nếu bạn có thể đăng một liên kết (đến một gist có thể?) Để hoàn thành 'git-completion.sh' của bạn nó có thể hữu ích để so sánh. – Tuxdude
@Tuxdude đã thêm thông tin. – pktangyue
Tôi thu thập rằng bạn có ít nhất 10 stashes? Tôi đang cố gắng tái tạo tình hình của bạn. Tôi không gặp vấn đề này với hai stashes (git 1.8.2.3, bash 4.2.45, Arch Linux x86_64). – kampu