On Tue, Feb 02, 2021 at 06:01:07AM +0000, Paul Jolly wrote: > Easiest explained via a repro: > > cd $(mktemp -d) > git init > touch README > git add -A > git commit -am 'Initial commit' > git checkout -b branch > git tag b-is-a-tag > > If you then type: > > git branch -D b^ > > leaving the cursor at the position shown by the caret, then attempt > completion via <Tab><Tab> (at least according to my bash setup) two > options are shown: > > b-is-a-tag branch > > b-is-a-tag is not a branch, so should not be offered as a completion > candidate in this instance. It looks like lowercase "-d" works. So maybe the "-d" here: $ sed -n '/git_branch/,/^}/p' contrib/completion/git-completion.bash | head _git_branch () { local i c=1 only_local_ref="n" has_r="n" while [ $c -lt $cword ]; do i="${words[c]}" case "$i" in -d|--delete|-D|-m|--move) only_local_ref="y" ;; -r|--remotes) has_r="y" ;; esac just needs to look for "-D", too? -Peff