2 # bash completion support for core Git.
4 # Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
5 # Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/).
6 # Distributed under the GNU General Public License, version 2.0.
8 # The contained completion routines provide support for completing:
10 # *) local and remote branch names
11 # *) local and remote tag names
12 # *) .git/remotes file names
13 # *) git 'subcommands'
14 # *) tree paths within 'ref:path/to/file' expressions
15 # *) common --long-options
17 # To use these routines:
19 # 1) Copy this file to somewhere (e.g. ~/.git-completion.sh).
20 # 2) Added the following line to your .bashrc:
21 # source ~/.git-completion.sh
23 # 3) You may want to make sure the git executable is available
24 # in your PATH before this script is sourced, as some caching
25 # is performed while the script loads. If git isn't found
26 # at source time then all lookups will be done on demand,
27 # which may be slightly slower.
29 # 4) Consider changing your PS1 to also show the current branch:
30 # PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
32 # The argument to __git_ps1 will be displayed only if you
33 # are currently in a git repository. The %s token will be
34 # the name of the current branch.
38 # *) Read Documentation/SubmittingPatches
39 # *) Send all patches to the current maintainer:
41 # "Shawn O. Pearce" <spearce@spearce.org>
43 # *) Always CC the Git mailing list:
51 if [ -n "$__git_dir" ]; then
53 elif [ -d .git
]; then
56 git rev-parse
--git-dir 2>/dev
/null
58 elif [ -d "$1/.git" ]; then
67 local g
="$(git rev-parse --git-dir 2>/dev/null)"
71 if [ -d "$g/../.dotest" ]
74 b
="$(git symbolic-ref HEAD 2>/dev/null)"
75 elif [ -f "$g/.dotest-merge/interactive" ]
78 b
="$(cat $g/.dotest-merge/head-name)"
79 elif [ -d "$g/.dotest-merge" ]
82 b
="$(cat $g/.dotest-merge/head-name)"
83 elif [ -f "$g/MERGE_HEAD" ]
86 b
="$(git symbolic-ref HEAD 2>/dev/null)"
88 if [ -f $g/BISECT_LOG
]
92 if ! b
="$(git symbolic-ref HEAD 2>/dev/null)"
94 if ! b
="$(git describe --exact-match HEAD 2>/dev/null)"
96 b
="$(cut -c1-7 $g/HEAD)..."
102 printf "$1" "${b##refs/heads/}$r"
104 printf " (%s)" "${b##refs/heads/}$r"
111 local all c s
=$
'\n' IFS
=' '$
'\t'$
'\n'
112 local cur
="${COMP_WORDS[COMP_CWORD]}"
113 if [ $# -gt 2 ]; then
118 --*=*) all
="$all$c$4$s" ;;
119 *.
) all
="$all$c$4$s" ;;
120 *) all
="$all$c$4 $s" ;;
124 COMPREPLY
=($
(compgen
-P "$2" -W "$all" -- "$cur"))
130 local cmd i is_hash
=y dir
="$(__gitdir "$1")"
131 if [ -d "$dir" ]; then
132 for i
in $
(git
--git-dir="$dir" \
133 for-each-ref
--format='%(refname)' \
135 echo "${i#refs/heads/}"
139 for i
in $
(git-ls-remote
"$1" 2>/dev
/null
); do
140 case "$is_hash,$i" in
143 n
,refs
/heads
/*) is_hash
=y
; echo "${i#refs/heads/}" ;;
144 n
,*) is_hash
=y
; echo "$i" ;;
151 local cmd i is_hash
=y dir
="$(__gitdir "$1")"
152 if [ -d "$dir" ]; then
153 for i
in $
(git
--git-dir="$dir" \
154 for-each-ref
--format='%(refname)' \
156 echo "${i#refs/tags/}"
160 for i
in $
(git-ls-remote
"$1" 2>/dev
/null
); do
161 case "$is_hash,$i" in
164 n
,refs
/tags
/*) is_hash
=y
; echo "${i#refs/tags/}" ;;
165 n
,*) is_hash
=y
; echo "$i" ;;
172 local cmd i is_hash
=y dir
="$(__gitdir "$1")"
173 if [ -d "$dir" ]; then
174 if [ -e "$dir/HEAD" ]; then echo HEAD
; fi
175 for i
in $
(git
--git-dir="$dir" \
176 for-each-ref
--format='%(refname)' \
177 refs
/tags refs
/heads refs
/remotes
); do
179 refs
/tags
/*) echo "${i#refs/tags/}" ;;
180 refs
/heads
/*) echo "${i#refs/heads/}" ;;
181 refs
/remotes
/*) echo "${i#refs/remotes/}" ;;
187 for i
in $
(git-ls-remote
"$dir" 2>/dev
/null
); do
188 case "$is_hash,$i" in
191 n
,refs
/tags
/*) is_hash
=y
; echo "${i#refs/tags/}" ;;
192 n
,refs
/heads
/*) is_hash
=y
; echo "${i#refs/heads/}" ;;
193 n
,refs
/remotes
/*) is_hash
=y
; echo "${i#refs/remotes/}" ;;
194 n
,*) is_hash
=y
; echo "$i" ;;
202 for i
in $
(__git_refs
"$1"); do
207 __git_refs_remotes
()
209 local cmd i is_hash
=y
210 for i
in $
(git-ls-remote
"$1" 2>/dev
/null
); do
211 case "$is_hash,$i" in
214 echo "$i:refs/remotes/$1/${i#refs/heads/}"
218 n
,refs
/tags
/*) is_hash
=y
;;
226 local i ngoff IFS
=$
'\n' d
="$(__gitdir)"
227 shopt -q nullglob || ngoff
=1
229 for i
in "$d/remotes"/*; do
230 echo ${i#$d/remotes/}
232 [ "$ngoff" ] && shopt -u nullglob
233 for i
in $
(git
--git-dir="$d" config
--list); do
243 __git_merge_strategies
()
245 if [ -n "$__git_merge_strategylist" ]; then
246 echo "$__git_merge_strategylist"
249 sed -n "/^all_strategies='/{
250 s/^all_strategies='//
254 }" "$(git --exec-path)/git-merge"
256 __git_merge_strategylist
=
257 __git_merge_strategylist
="$(__git_merge_strategies 2>/dev/null)"
259 __git_complete_file
()
261 local pfx
ls ref cur
="${COMP_WORDS[COMP_CWORD]}"
277 COMPREPLY
=($
(compgen
-P "$pfx" \
278 -W "$(git --git-dir="$
(__gitdir
)" ls-tree "$ls" \
279 | sed '/^100... blob /s,^.* ,,
288 __gitcomp
"$(__git_refs)"
293 __git_complete_revlist
()
295 local pfx cur
="${COMP_WORDS[COMP_CWORD]}"
300 __gitcomp
"$(__git_refs)" "$pfx" "$cur"
305 __gitcomp
"$(__git_refs)" "$pfx" "$cur"
311 __gitcomp
"$(__git_refs)"
318 if [ -n "$__git_commandlist" ]; then
319 echo "$__git_commandlist"
323 for i
in $
(git
help -a|
egrep '^ ')
326 *--*) : helper pattern
;;
327 applymbox
) : ask gittus
;;
328 applypatch
) : ask gittus
;;
329 archimport
) : import
;;
330 cat-file
) : plumbing
;;
331 check-attr
) : plumbing
;;
332 check-ref-format
) : plumbing
;;
333 commit-tree
) : plumbing
;;
334 cvsexportcommit
) : export;;
335 cvsimport
) : import
;;
336 cvsserver
) : daemon
;;
338 diff-files
) : plumbing
;;
339 diff-index
) : plumbing
;;
340 diff-tree
) : plumbing
;;
341 fast-import
) : import
;;
342 fsck-objects
) : plumbing
;;
343 fetch-pack
) : plumbing
;;
344 fmt-merge-msg
) : plumbing
;;
345 for-each-ref
) : plumbing
;;
346 hash-object
) : plumbing
;;
347 http-
*) : transport
;;
348 index-pack
) : plumbing
;;
349 init-db
) : deprecated
;;
350 local-fetch
) : plumbing
;;
351 mailinfo
) : plumbing
;;
352 mailsplit
) : plumbing
;;
353 merge-
*) : plumbing
;;
356 pack-objects
) : plumbing
;;
357 pack-redundant
) : plumbing
;;
358 pack-refs
) : plumbing
;;
359 parse-remote
) : plumbing
;;
360 patch-id
) : plumbing
;;
361 peek-remote
) : plumbing
;;
363 prune-packed
) : plumbing
;;
364 quiltimport
) : import
;;
365 read-tree
) : plumbing
;;
366 receive-pack
) : plumbing
;;
368 repo-config
) : deprecated
;;
370 rev-list
) : plumbing
;;
371 rev-parse
) : plumbing
;;
372 runstatus
) : plumbing
;;
373 sh-setup
) : internal
;;
375 send-pack
) : plumbing
;;
376 show-index
) : plumbing
;;
378 stripspace
) : plumbing
;;
379 svn
) : import
export;;
380 symbolic-ref
) : plumbing
;;
381 tar-tree
) : deprecated
;;
382 unpack-file
) : plumbing
;;
383 unpack-objects
) : plumbing
;;
384 update-index
) : plumbing
;;
385 update-ref
) : plumbing
;;
386 update-server-info
) : daemon
;;
387 upload-archive
) : plumbing
;;
388 upload-pack
) : plumbing
;;
389 write-tree
) : plumbing
;;
390 verify-tag
) : plumbing
;;
396 __git_commandlist
="$(__git_commands 2>/dev/null)"
401 for i
in $
(git
--git-dir="$(__gitdir)" config
--list); do
411 __git_aliased_command
()
413 local word cmdline
=$
(git
--git-dir="$(__gitdir)" \
414 config
--get "alias.$1")
415 for word
in $cmdline; do
416 if [ "${word##-*}" ]; then
423 __git_whitespacelist
="nowarn warn error error-all strip"
427 local cur
="${COMP_WORDS[COMP_CWORD]}"
428 if [ -d .dotest
]; then
429 __gitcomp
"--skip --resolved"
434 __gitcomp
"$__git_whitespacelist" "" "${cur##--whitespace=}"
439 --signoff --utf8 --binary --3way --interactive
449 local cur
="${COMP_WORDS[COMP_CWORD]}"
452 __gitcomp
"$__git_whitespacelist" "" "${cur##--whitespace=}"
457 --stat --numstat --summary --check --index
458 --cached --index-info --reverse --reject --unidiff-zero
459 --apply --no-add --exclude=
460 --whitespace= --inaccurate-eof --verbose
469 local cur
="${COMP_WORDS[COMP_CWORD]}"
472 __gitcomp
"--interactive --refresh"
481 while [ $c -lt $COMP_CWORD ]; do
484 start|bad|good|
reset|visualize|replay|log
)
492 if [ $c -eq $COMP_CWORD -a -z "$command" ]; then
493 __gitcomp
"start bad good reset visualize replay log"
499 __gitcomp
"$(__git_refs)"
509 __gitcomp
"$(__git_refs)"
514 local mycword
="$COMP_CWORD"
515 case "${COMP_WORDS[0]}" in
517 local cmd
="${COMP_WORDS[2]}"
518 mycword
="$((mycword-1))"
521 local cmd
="${COMP_WORDS[1]}"
526 __gitcomp
"create list-heads verify unbundle"
534 __git_complete_revlist
543 __gitcomp
"$(__git_refs)"
548 __gitcomp
"$(__git_refs)"
553 local cur
="${COMP_WORDS[COMP_CWORD]}"
556 __gitcomp
"--edit --no-commit"
559 __gitcomp
"$(__git_refs)"
566 local cur
="${COMP_WORDS[COMP_CWORD]}"
570 --all --author= --signoff --verify --no-verify
571 --edit --amend --include --only
580 __gitcomp
"$(__git_refs)"
585 local cur
="${COMP_WORDS[COMP_CWORD]}"
588 __gitcomp
"--cached --stat --numstat --shortstat --summary
589 --patch-with-stat --name-only --name-status --color
590 --no-color --color-words --no-renames --check
591 --full-index --binary --abbrev --diff-filter
592 --find-copies-harder --pickaxe-all --pickaxe-regex
593 --text --ignore-space-at-eol --ignore-space-change
594 --ignore-all-space --exit-code --quiet --ext-diff
604 __gitcomp
"$(__git_refs)"
609 local cur
="${COMP_WORDS[COMP_CWORD]}"
611 case "${COMP_WORDS[0]},$COMP_CWORD" in
613 __gitcomp
"$(__git_remotes)"
616 __gitcomp
"$(__git_remotes)"
621 __gitcomp
"$(__git_refs)" "" "${cur#*:}"
625 case "${COMP_WORDS[0]}" in
626 git-fetch
) remote
="${COMP_WORDS[1]}" ;;
627 git
) remote
="${COMP_WORDS[2]}" ;;
629 __gitcomp
"$(__git_refs2 "$remote")"
638 local cur
="${COMP_WORDS[COMP_CWORD]}"
642 --stdout --attach --thread
644 --numbered --start-number
649 --full-index --binary
656 __git_complete_revlist
661 local cur
="${COMP_WORDS[COMP_CWORD]}"
664 __gitcomp
"--prune --aggressive"
673 __gitcomp
"$(__git_remotes)"
683 local cur
="${COMP_WORDS[COMP_CWORD]}"
687 oneline short medium full fuller email raw
688 " "" "${cur##--pretty=}"
693 relative iso8601 rfc2822 short local default
694 " "" "${cur##--date=}"
699 --max-count= --max-age= --since= --after=
700 --min-age= --before= --until=
701 --root --topo-order --date-order --reverse
703 --abbrev-commit --abbrev=
704 --relative-date --date=
705 --author= --committer= --grep=
707 --pretty= --name-status --name-only --raw
709 --left-right --cherry-pick
714 __git_complete_revlist
719 local cur
="${COMP_WORDS[COMP_CWORD]}"
720 case "${COMP_WORDS[COMP_CWORD-1]}" in
722 __gitcomp
"$(__git_merge_strategies)"
727 __gitcomp
"$(__git_merge_strategies)" "" "${cur##--strategy=}"
732 --no-commit --no-summary --squash --strategy
736 __gitcomp
"$(__git_refs)"
741 __gitcomp
"$(__git_refs)"
746 __gitcomp
"--tags --all --stdin"
751 local cur
="${COMP_WORDS[COMP_CWORD]}"
753 case "${COMP_WORDS[0]},$COMP_CWORD" in
755 __gitcomp
"$(__git_remotes)"
758 __gitcomp
"$(__git_remotes)"
762 case "${COMP_WORDS[0]}" in
763 git-pull
) remote
="${COMP_WORDS[1]}" ;;
764 git
) remote
="${COMP_WORDS[2]}" ;;
766 __gitcomp
"$(__git_refs "$remote")"
773 local cur
="${COMP_WORDS[COMP_CWORD]}"
775 case "${COMP_WORDS[0]},$COMP_CWORD" in
777 __gitcomp
"$(__git_remotes)"
780 __gitcomp
"$(__git_remotes)"
786 case "${COMP_WORDS[0]}" in
787 git-push
) remote
="${COMP_WORDS[1]}" ;;
788 git
) remote
="${COMP_WORDS[2]}" ;;
790 __gitcomp
"$(__git_refs "$remote")" "" "${cur#*:}"
793 __gitcomp
"$(__git_refs)" + "${cur#+}"
796 __gitcomp
"$(__git_refs)"
805 local cur
="${COMP_WORDS[COMP_CWORD]}"
806 if [ -d .dotest
] ||
[ -d .git
/.dotest-merge
]; then
807 __gitcomp
"--continue --skip --abort"
810 case "${COMP_WORDS[COMP_CWORD-1]}" in
812 __gitcomp
"$(__git_merge_strategies)"
817 __gitcomp
"$(__git_merge_strategies)" "" "${cur##--strategy=}"
821 __gitcomp
"--onto --merge --strategy"
824 __gitcomp
"$(__git_refs)"
829 local cur
="${COMP_WORDS[COMP_CWORD]}"
830 local prv
="${COMP_WORDS[COMP_CWORD-1]}"
833 __gitcomp
"$(__git_remotes)"
837 __gitcomp
"$(__git_refs)"
841 local remote
="${prv#remote.}"
842 remote
="${remote%.fetch}"
843 __gitcomp
"$(__git_refs_remotes "$remote")"
847 local remote
="${prv#remote.}"
848 remote
="${remote%.push}"
849 __gitcomp
"$(git --git-dir="$
(__gitdir
)" \
850 for-each-ref --format='%(refname):%(refname)' \
854 pull.twohead|pull.octopus
)
855 __gitcomp
"$(__git_merge_strategies)"
858 color.branch|color.
diff|color.status
)
859 __gitcomp
"always never auto"
864 black red green yellow blue magenta cyan white
865 bold dim ul blink reverse
877 --global --system --file=
879 --get --get-all --get-regexp
880 --add --unset --unset-all
881 --remove-section --rename-section
886 local pfx
="${cur%.*}."
888 __gitcomp
"remote merge" "$pfx" "$cur"
892 local pfx
="${cur%.*}."
894 __gitcomp
"$(__git_heads)" "$pfx" "$cur" "."
898 local pfx
="${cur%.*}."
901 url fetch push skipDefaultUpdate
902 receivepack uploadpack tagopt
907 local pfx
="${cur%.*}."
909 __gitcomp
"$(__git_remotes)" "$pfx" "$cur" "."
918 core.preferSymlinkRefs
919 core.logAllRefUpdates
920 core.loosecompression
921 core.repositoryFormatVersion
922 core.sharedRepository
923 core.warnAmbiguousRefs
926 core.packedGitWindowSize
941 color.diff.whitespace
947 color.status.untracked
956 gitcvs.dbname gitcvs.dbdriver gitcvs.dbuser gitcvs.dvpass
959 gc.reflogexpireunreachable
972 i18n.logOutputEncoding
985 repack.useDeltaBaseOffset
991 receive.denyNonFastForwards
1003 while [ $c -lt $COMP_CWORD ]; do
1004 i
="${COMP_WORDS[c]}"
1006 add|
rm|show|prune|update
) command="$i"; break ;;
1011 if [ $c -eq $COMP_CWORD -a -z "$command" ]; then
1012 __gitcomp
"add rm show prune update"
1018 __gitcomp
"$(__git_remotes)"
1021 local i c
='' IFS
=$
'\n'
1022 for i
in $
(git
--git-dir="$(__gitdir)" config
--list); do
1040 local cur
="${COMP_WORDS[COMP_CWORD]}"
1043 __gitcomp
"--mixed --hard --soft"
1047 __gitcomp
"$(__git_refs)"
1052 local cur
="${COMP_WORDS[COMP_CWORD]}"
1056 --max-count= --max-age= --since= --after=
1057 --min-age= --before= --until=
1059 --author= --committer= --grep=
1062 --numbered --summary
1067 __git_complete_revlist
1072 local cur
="${COMP_WORDS[COMP_CWORD]}"
1076 oneline short medium full fuller email raw
1077 " "" "${cur##--pretty=}"
1081 __gitcomp
"--pretty="
1090 __gitcomp
'list show apply clear'
1096 while [ $c -lt $COMP_CWORD ]; do
1097 i
="${COMP_WORDS[c]}"
1099 add|status|init|update
) command="$i"; break ;;
1104 if [ $c -eq $COMP_CWORD -a -z "$command" ]; then
1105 local cur
="${COMP_WORDS[COMP_CWORD]}"
1108 __gitcomp
"--quiet --cached"
1111 __gitcomp
"add status init update"
1121 while [ $c -lt $COMP_CWORD ]; do
1122 i
="${COMP_WORDS[c]}"
1125 __gitcomp
"$(__git_tags)"
1135 case "${COMP_WORDS[COMP_CWORD-1]}" in
1141 __gitcomp
"$(__git_tags)"
1147 __gitcomp
"$(__git_refs)"
1154 local i c
=1 command __git_dir
1156 while [ $c -lt $COMP_CWORD ]; do
1157 i
="${COMP_WORDS[c]}"
1159 --git-dir=*) __git_dir
="${i#--git-dir=}" ;;
1160 --bare) __git_dir
="." ;;
1161 --version|
--help|
-p|
--paginate) ;;
1162 *) command="$i"; break ;;
1167 if [ $c -eq $COMP_CWORD -a -z "$command" ]; then
1168 case "${COMP_WORDS[COMP_CWORD]}" in
1169 --*=*) COMPREPLY
=() ;;
1178 *) __gitcomp
"$(__git_commands) $(__git_aliases)" ;;
1183 local expansion
=$
(__git_aliased_command
"$command")
1184 [ "$expansion" ] && command="$expansion"
1189 apply
) _git_apply
;;
1190 bisect
) _git_bisect
;;
1191 bundle
) _git_bundle
;;
1192 branch
) _git_branch
;;
1193 checkout
) _git_checkout
;;
1194 cherry
) _git_cherry
;;
1195 cherry-pick
) _git_cherry_pick
;;
1196 commit
) _git_commit
;;
1197 config
) _git_config
;;
1198 describe
) _git_describe
;;
1200 fetch
) _git_fetch
;;
1201 format-patch
) _git_format_patch
;;
1204 ls-remote
) _git_ls_remote
;;
1205 ls-tree
) _git_ls_tree
;;
1207 merge-base
) _git_merge_base
;;
1208 name-rev
) _git_name_rev
;;
1211 rebase
) _git_rebase
;;
1212 remote
) _git_remote
;;
1213 reset) _git_reset
;;
1214 shortlog
) _git_shortlog
;;
1216 show-branch
) _git_log
;;
1217 stash
) _git_stash
;;
1218 submodule
) _git_submodule
;;
1220 whatchanged
) _git_log
;;
1227 local cur
="${COMP_WORDS[COMP_CWORD]}"
1230 __gitcomp
"--not --all"
1234 __git_complete_revlist
1237 complete
-o default
-o nospace
-F _git git
1238 complete
-o default
-o nospace
-F _gitk gitk
1239 complete
-o default
-o nospace
-F _git_am git-am
1240 complete
-o default
-o nospace
-F _git_apply git-apply
1241 complete
-o default
-o nospace
-F _git_bisect git-bisect
1242 complete
-o default
-o nospace
-F _git_branch git-branch
1243 complete
-o default
-o nospace
-F _git_bundle git-bundle
1244 complete
-o default
-o nospace
-F _git_checkout git-checkout
1245 complete
-o default
-o nospace
-F _git_cherry git-cherry
1246 complete
-o default
-o nospace
-F _git_cherry_pick git-cherry-pick
1247 complete
-o default
-o nospace
-F _git_commit git-commit
1248 complete
-o default
-o nospace
-F _git_describe git-describe
1249 complete
-o default
-o nospace
-F _git_diff git-diff
1250 complete
-o default
-o nospace
-F _git_fetch git-fetch
1251 complete
-o default
-o nospace
-F _git_format_patch git-format-patch
1252 complete
-o default
-o nospace
-F _git_gc git-gc
1253 complete
-o default
-o nospace
-F _git_log git-log
1254 complete
-o default
-o nospace
-F _git_ls_remote git-ls-remote
1255 complete
-o default
-o nospace
-F _git_ls_tree git-ls-tree
1256 complete
-o default
-o nospace
-F _git_merge git-merge
1257 complete
-o default
-o nospace
-F _git_merge_base git-merge-base
1258 complete
-o default
-o nospace
-F _git_name_rev git-name-rev
1259 complete
-o default
-o nospace
-F _git_pull git-pull
1260 complete
-o default
-o nospace
-F _git_push git-push
1261 complete
-o default
-o nospace
-F _git_rebase git-rebase
1262 complete
-o default
-o nospace
-F _git_config git-config
1263 complete
-o default
-o nospace
-F _git_remote git-remote
1264 complete
-o default
-o nospace
-F _git_reset git-reset
1265 complete
-o default
-o nospace
-F _git_shortlog git-shortlog
1266 complete
-o default
-o nospace
-F _git_show git-show
1267 complete
-o default
-o nospace
-F _git_stash git-stash
1268 complete
-o default
-o nospace
-F _git_submodule git-submodule
1269 complete
-o default
-o nospace
-F _git_log git-show-branch
1270 complete
-o default
-o nospace
-F _git_tag git-tag
1271 complete
-o default
-o nospace
-F _git_log git-whatchanged
1273 # The following are necessary only for Cygwin, and only are needed
1274 # when the user has tab-completed the executable name and consequently
1275 # included the '.exe' suffix.
1277 if [ Cygwin
= "$(uname -o 2>/dev/null)" ]; then
1278 complete
-o default
-o nospace
-F _git_add git-add.exe
1279 complete
-o default
-o nospace
-F _git_apply git-apply.exe
1280 complete
-o default
-o nospace
-F _git git.exe
1281 complete
-o default
-o nospace
-F _git_branch git-branch.exe
1282 complete
-o default
-o nospace
-F _git_bundle git-bundle.exe
1283 complete
-o default
-o nospace
-F _git_cherry git-cherry.exe
1284 complete
-o default
-o nospace
-F _git_describe git-describe.exe
1285 complete
-o default
-o nospace
-F _git_diff git-diff.exe
1286 complete
-o default
-o nospace
-F _git_format_patch git-format-patch.exe
1287 complete
-o default
-o nospace
-F _git_log git-log.exe
1288 complete
-o default
-o nospace
-F _git_ls_tree git-ls-tree.exe
1289 complete
-o default
-o nospace
-F _git_merge_base git-merge-base.exe
1290 complete
-o default
-o nospace
-F _git_name_rev git-name-rev.exe
1291 complete
-o default
-o nospace
-F _git_push git-push.exe
1292 complete
-o default
-o nospace
-F _git_config git-config
1293 complete
-o default
-o nospace
-F _git_shortlog git-shortlog.exe
1294 complete
-o default
-o nospace
-F _git_show git-show.exe
1295 complete
-o default
-o nospace
-F _git_log git-show-branch.exe
1296 complete
-o default
-o nospace
-F _git_tag git-tag.exe
1297 complete
-o default
-o nospace
-F _git_log git-whatchanged.exe