If __git_cmd_idx is empty then zsh will silelntly fail to complete remotes when doing "git push <tab>". Ensure that __git_cmd_idx is non-empty before using it in __git_complete_remote_or_refspec. This was tested on zsh 5.7.1 (x86_64-apple-darwin19.0). Other versions of zsh, eg. zsh 5.0.2 (x86_64-redhat-linux-gnu), do not exhibit this behavior. Signed-off-by: David Aguilar <davvid@xxxxxxxxx> --- Further testing of the completion behavior spotted this regression. This should be applied on top of, "contrib/completion: avoid empty arithemetic expressions". and could arguably be squashed into that commit. I have my zshrc setup to point directly to a git.git worktree and a recent update seems to have caused these regressions. contrib/completion/git-completion.bash | 3 +++ 1 file changed, 3 insertions(+) diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index d51ff5302d..bc1aea82bf 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -1006,6 +1006,9 @@ __git_complete_revlist () __git_complete_remote_or_refspec () { + if [ -z "$__git_cmd_idx" ]; then + __git_cmd_idx=1 + fi local cur_="$cur" cmd="${words[__git_cmd_idx]}" local i c=$((__git_cmd_idx+1)) remote="" pfx="" lhs=1 no_complete_refspec=0 if [ "$cmd" = "remote" ]; then -- 2.32.0.rc2.2.ga063d53b1a