首先我鍵入git stash show
。輸入git存儲時自動完成問題顯示存儲@ {1}
然後鍵入小號和標籤,它顯示了git stash show [email protected]{
,到現在它工作正常。
但是在我鍵入和標籤,它becames git stash show [email protected]{1}
,這是明顯錯誤的。
我覺得在.git-completion.bash下面的代碼中可能會出現一些錯誤,但我幾乎看不懂這個。
_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
}
有誰知道如何解決它? Bash版本:GNU bash,版本4.2.37(2) - 發佈(i386-apple-darwin12.0.0)。
git的版本:1.8.0.3
整個源:https://gist.github.com/pktangyue/5477924
我正在使用bash'4.1.10(1)'。我在'/ etc/bash-completion.d/git-completion.sh'中定義了相同的完成函數,並且完成對我的工作很好。你能提供關於你的bash版本的細節嗎?另外,如果你可以發佈一個鏈接(可能是?)到你完整的'git-completion.sh',它可能對比較有用。 – Tuxdude 2013-04-28 17:15:19
@Tuxdude增加了更多信息。 – pktangyue 2013-04-28 18:41:38
我收集你至少有10個藏有?我試圖複製你的情況。我沒有遇到過這種問題(git 1.8.2.3,bash 4.2.45,Arch Linux x86_64)。 – kampu 2013-05-14 13:49:29