It took me more than a few tries and a good lecture of __git_main to understand that the two paragraphs above really only refer to adding completion functions for executables that are not called through git's subcommand magic. Add a few sentences for that case. Signed-off-by: Roland Hieber <rhi@xxxxxxxxxxxxxx> --- PATCH v2: - fix typo and superfluous "-my" PATCH v1: https://lore.kernel.org/git/20240424210549.256256-2-rhi@xxxxxxxxxxxxxx/ --- contrib/completion/git-completion.bash | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index ffcc55484bcd..603181d53a90 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -40,6 +40,13 @@ # # __git_complete gk gitk # +# To add completion for git subcommands that live in external scripts, +# define a function of the form '_git_${subcommand}' while replacing all dashes +# with underscores, and the main git completion will make use of it. +# For example, to add completion after 'git do-stuff' (which could e.g. live +# in /usr/bin/git-do-stuff), name the completion function '_git_do_stuff'. +# See _git_show, _git_bisect etc. below for more examples. +# # Compatible with bash 3.2.57. # # You can set the following environment variables to influence the behavior of -- 2.39.2