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" ]
73 if test -f "$g/../.dotest/rebasing"
76 elif test -f "$g/../.dotest/applying"
82 b
="$(git symbolic-ref HEAD 2>/dev/null)"
83 elif [ -f "$g/.dotest-merge/interactive" ]
86 b
="$(cat $g/.dotest-merge/head-name)"
87 elif [ -d "$g/.dotest-merge" ]
90 b
="$(cat $g/.dotest-merge/head-name)"
91 elif [ -f "$g/MERGE_HEAD" ]
94 b
="$(git symbolic-ref HEAD 2>/dev/null)"
96 if [ -f $g/BISECT_LOG
]
100 if ! b
="$(git symbolic-ref HEAD 2>/dev/null)"
102 if ! b
="$(git describe --exact-match HEAD 2>/dev/null)"
104 b
="$(cut -c1-7 $g/HEAD)..."
110 printf "$1" "${b##refs/heads/}$r"
112 printf " (%s)" "${b##refs/heads/}$r"
119 local all c s
=$
'\n' IFS
=' '$
'\t'$
'\n'
120 local cur
="${COMP_WORDS[COMP_CWORD]}"
121 if [ $# -gt 2 ]; then
126 --*=*) all
="$all$c$4$s" ;;
127 *.
) all
="$all$c$4$s" ;;
128 *) all
="$all$c$4 $s" ;;
132 COMPREPLY
=($
(compgen
-P "$2" -W "$all" -- "$cur"))
138 local cmd i is_hash
=y dir
="$(__gitdir "$1")"
139 if [ -d "$dir" ]; then
140 for i
in $
(git
--git-dir="$dir" \
141 for-each-ref
--format='%(refname)' \
143 echo "${i#refs/heads/}"
147 for i
in $
(git-ls-remote
"$1" 2>/dev
/null
); do
148 case "$is_hash,$i" in
151 n
,refs
/heads
/*) is_hash
=y
; echo "${i#refs/heads/}" ;;
152 n
,*) is_hash
=y
; echo "$i" ;;
159 local cmd i is_hash
=y dir
="$(__gitdir "$1")"
160 if [ -d "$dir" ]; then
161 for i
in $
(git
--git-dir="$dir" \
162 for-each-ref
--format='%(refname)' \
164 echo "${i#refs/tags/}"
168 for i
in $
(git-ls-remote
"$1" 2>/dev
/null
); do
169 case "$is_hash,$i" in
172 n
,refs
/tags
/*) is_hash
=y
; echo "${i#refs/tags/}" ;;
173 n
,*) is_hash
=y
; echo "$i" ;;
180 local cmd i is_hash
=y dir
="$(__gitdir "$1")"
181 if [ -d "$dir" ]; then
182 if [ -e "$dir/HEAD" ]; then echo HEAD
; fi
183 for i
in $
(git
--git-dir="$dir" \
184 for-each-ref
--format='%(refname)' \
185 refs
/tags refs
/heads refs
/remotes
); do
187 refs
/tags
/*) echo "${i#refs/tags/}" ;;
188 refs
/heads
/*) echo "${i#refs/heads/}" ;;
189 refs
/remotes
/*) echo "${i#refs/remotes/}" ;;
195 for i
in $
(git-ls-remote
"$dir" 2>/dev
/null
); do
196 case "$is_hash,$i" in
199 n
,refs
/tags
/*) is_hash
=y
; echo "${i#refs/tags/}" ;;
200 n
,refs
/heads
/*) is_hash
=y
; echo "${i#refs/heads/}" ;;
201 n
,refs
/remotes
/*) is_hash
=y
; echo "${i#refs/remotes/}" ;;
202 n
,*) is_hash
=y
; echo "$i" ;;
210 for i
in $
(__git_refs
"$1"); do
215 __git_refs_remotes
()
217 local cmd i is_hash
=y
218 for i
in $
(git-ls-remote
"$1" 2>/dev
/null
); do
219 case "$is_hash,$i" in
222 echo "$i:refs/remotes/$1/${i#refs/heads/}"
226 n
,refs
/tags
/*) is_hash
=y
;;
234 local i ngoff IFS
=$
'\n' d
="$(__gitdir)"
235 shopt -q nullglob || ngoff
=1
237 for i
in "$d/remotes"/*; do
238 echo ${i#$d/remotes/}
240 [ "$ngoff" ] && shopt -u nullglob
241 for i
in $
(git
--git-dir="$d" config
--list); do
251 __git_merge_strategies
()
253 if [ -n "$__git_merge_strategylist" ]; then
254 echo "$__git_merge_strategylist"
257 sed -n "/^all_strategies='/{
258 s/^all_strategies='//
262 }" "$(git --exec-path)/git-merge"
264 __git_merge_strategylist
=
265 __git_merge_strategylist
="$(__git_merge_strategies 2>/dev/null)"
267 __git_complete_file
()
269 local pfx
ls ref cur
="${COMP_WORDS[COMP_CWORD]}"
285 COMPREPLY
=($
(compgen
-P "$pfx" \
286 -W "$(git --git-dir="$
(__gitdir
)" ls-tree "$ls" \
287 | sed '/^100... blob /s,^.* ,,
296 __gitcomp
"$(__git_refs)"
301 __git_complete_revlist
()
303 local pfx cur
="${COMP_WORDS[COMP_CWORD]}"
308 __gitcomp
"$(__git_refs)" "$pfx" "$cur"
313 __gitcomp
"$(__git_refs)" "$pfx" "$cur"
319 __gitcomp
"$(__git_refs)"
326 if [ -n "$__git_commandlist" ]; then
327 echo "$__git_commandlist"
331 for i
in $
(git
help -a|
egrep '^ ')
334 *--*) : helper pattern
;;
335 applymbox
) : ask gittus
;;
336 applypatch
) : ask gittus
;;
337 archimport
) : import
;;
338 cat-file
) : plumbing
;;
339 check-attr
) : plumbing
;;
340 check-ref-format
) : plumbing
;;
341 commit-tree
) : plumbing
;;
342 cvsexportcommit
) : export;;
343 cvsimport
) : import
;;
344 cvsserver
) : daemon
;;
346 diff-files
) : plumbing
;;
347 diff-index
) : plumbing
;;
348 diff-tree
) : plumbing
;;
349 fast-import
) : import
;;
350 fsck-objects
) : plumbing
;;
351 fetch-pack
) : plumbing
;;
352 fmt-merge-msg
) : plumbing
;;
353 for-each-ref
) : plumbing
;;
354 hash-object
) : plumbing
;;
355 http-
*) : transport
;;
356 index-pack
) : plumbing
;;
357 init-db
) : deprecated
;;
358 local-fetch
) : plumbing
;;
359 mailinfo
) : plumbing
;;
360 mailsplit
) : plumbing
;;
361 merge-
*) : plumbing
;;
364 pack-objects
) : plumbing
;;
365 pack-redundant
) : plumbing
;;
366 pack-refs
) : plumbing
;;
367 parse-remote
) : plumbing
;;
368 patch-id
) : plumbing
;;
369 peek-remote
) : plumbing
;;
371 prune-packed
) : plumbing
;;
372 quiltimport
) : import
;;
373 read-tree
) : plumbing
;;
374 receive-pack
) : plumbing
;;
376 repo-config
) : deprecated
;;
378 rev-list
) : plumbing
;;
379 rev-parse
) : plumbing
;;
380 runstatus
) : plumbing
;;
381 sh-setup
) : internal
;;
383 send-pack
) : plumbing
;;
384 show-index
) : plumbing
;;
386 stripspace
) : plumbing
;;
387 svn
) : import
export;;
388 symbolic-ref
) : plumbing
;;
389 tar-tree
) : deprecated
;;
390 unpack-file
) : plumbing
;;
391 unpack-objects
) : plumbing
;;
392 update-index
) : plumbing
;;
393 update-ref
) : plumbing
;;
394 update-server-info
) : daemon
;;
395 upload-archive
) : plumbing
;;
396 upload-pack
) : plumbing
;;
397 write-tree
) : plumbing
;;
398 verify-tag
) : plumbing
;;
404 __git_commandlist
="$(__git_commands 2>/dev/null)"
409 for i
in $
(git
--git-dir="$(__gitdir)" config
--list); do
419 __git_aliased_command
()
421 local word cmdline
=$
(git
--git-dir="$(__gitdir)" \
422 config
--get "alias.$1")
423 for word
in $cmdline; do
424 if [ "${word##-*}" ]; then
431 __git_whitespacelist
="nowarn warn error error-all strip"
435 local cur
="${COMP_WORDS[COMP_CWORD]}"
436 if [ -d .dotest
]; then
437 __gitcomp
"--skip --resolved"
442 __gitcomp
"$__git_whitespacelist" "" "${cur##--whitespace=}"
447 --signoff --utf8 --binary --3way --interactive
457 local cur
="${COMP_WORDS[COMP_CWORD]}"
460 __gitcomp
"$__git_whitespacelist" "" "${cur##--whitespace=}"
465 --stat --numstat --summary --check --index
466 --cached --index-info --reverse --reject --unidiff-zero
467 --apply --no-add --exclude=
468 --whitespace= --inaccurate-eof --verbose
477 local cur
="${COMP_WORDS[COMP_CWORD]}"
480 __gitcomp
"--interactive --refresh"
489 while [ $c -lt $COMP_CWORD ]; do
492 start|bad|good|
reset|visualize|replay|log
)
500 if [ $c -eq $COMP_CWORD -a -z "$command" ]; then
501 __gitcomp
"start bad good reset visualize replay log"
507 __gitcomp
"$(__git_refs)"
517 __gitcomp
"$(__git_refs)"
522 local mycword
="$COMP_CWORD"
523 case "${COMP_WORDS[0]}" in
525 local cmd
="${COMP_WORDS[2]}"
526 mycword
="$((mycword-1))"
529 local cmd
="${COMP_WORDS[1]}"
534 __gitcomp
"create list-heads verify unbundle"
542 __git_complete_revlist
551 __gitcomp
"$(__git_refs)"
556 __gitcomp
"$(__git_refs)"
561 local cur
="${COMP_WORDS[COMP_CWORD]}"
564 __gitcomp
"--edit --no-commit"
567 __gitcomp
"$(__git_refs)"
574 local cur
="${COMP_WORDS[COMP_CWORD]}"
578 --all --author= --signoff --verify --no-verify
579 --edit --amend --include --only
588 __gitcomp
"$(__git_refs)"
593 local cur
="${COMP_WORDS[COMP_CWORD]}"
596 __gitcomp
"--cached --stat --numstat --shortstat --summary
597 --patch-with-stat --name-only --name-status --color
598 --no-color --color-words --no-renames --check
599 --full-index --binary --abbrev --diff-filter
600 --find-copies-harder --pickaxe-all --pickaxe-regex
601 --text --ignore-space-at-eol --ignore-space-change
602 --ignore-all-space --exit-code --quiet --ext-diff
612 __gitcomp
"$(__git_refs)"
617 local cur
="${COMP_WORDS[COMP_CWORD]}"
619 case "${COMP_WORDS[0]},$COMP_CWORD" in
621 __gitcomp
"$(__git_remotes)"
624 __gitcomp
"$(__git_remotes)"
629 __gitcomp
"$(__git_refs)" "" "${cur#*:}"
633 case "${COMP_WORDS[0]}" in
634 git-fetch
) remote
="${COMP_WORDS[1]}" ;;
635 git
) remote
="${COMP_WORDS[2]}" ;;
637 __gitcomp
"$(__git_refs2 "$remote")"
646 local cur
="${COMP_WORDS[COMP_CWORD]}"
650 --stdout --attach --thread
652 --numbered --start-number
657 --full-index --binary
664 __git_complete_revlist
669 local cur
="${COMP_WORDS[COMP_CWORD]}"
672 __gitcomp
"--prune --aggressive"
681 __gitcomp
"$(__git_remotes)"
691 local cur
="${COMP_WORDS[COMP_CWORD]}"
695 oneline short medium full fuller email raw
696 " "" "${cur##--pretty=}"
701 relative iso8601 rfc2822 short local default
702 " "" "${cur##--date=}"
707 --max-count= --max-age= --since= --after=
708 --min-age= --before= --until=
709 --root --topo-order --date-order --reverse
711 --abbrev-commit --abbrev=
712 --relative-date --date=
713 --author= --committer= --grep=
715 --pretty= --name-status --name-only --raw
717 --left-right --cherry-pick
722 __git_complete_revlist
727 local cur
="${COMP_WORDS[COMP_CWORD]}"
728 case "${COMP_WORDS[COMP_CWORD-1]}" in
730 __gitcomp
"$(__git_merge_strategies)"
735 __gitcomp
"$(__git_merge_strategies)" "" "${cur##--strategy=}"
740 --no-commit --no-summary --squash --strategy
744 __gitcomp
"$(__git_refs)"
749 __gitcomp
"$(__git_refs)"
754 __gitcomp
"--tags --all --stdin"
759 local cur
="${COMP_WORDS[COMP_CWORD]}"
761 case "${COMP_WORDS[0]},$COMP_CWORD" in
763 __gitcomp
"$(__git_remotes)"
766 __gitcomp
"$(__git_remotes)"
770 case "${COMP_WORDS[0]}" in
771 git-pull
) remote
="${COMP_WORDS[1]}" ;;
772 git
) remote
="${COMP_WORDS[2]}" ;;
774 __gitcomp
"$(__git_refs "$remote")"
781 local cur
="${COMP_WORDS[COMP_CWORD]}"
783 case "${COMP_WORDS[0]},$COMP_CWORD" in
785 __gitcomp
"$(__git_remotes)"
788 __gitcomp
"$(__git_remotes)"
794 case "${COMP_WORDS[0]}" in
795 git-push
) remote
="${COMP_WORDS[1]}" ;;
796 git
) remote
="${COMP_WORDS[2]}" ;;
798 __gitcomp
"$(__git_refs "$remote")" "" "${cur#*:}"
801 __gitcomp
"$(__git_refs)" + "${cur#+}"
804 __gitcomp
"$(__git_refs)"
813 local cur
="${COMP_WORDS[COMP_CWORD]}"
814 if [ -d .dotest
] ||
[ -d .git
/.dotest-merge
]; then
815 __gitcomp
"--continue --skip --abort"
818 case "${COMP_WORDS[COMP_CWORD-1]}" in
820 __gitcomp
"$(__git_merge_strategies)"
825 __gitcomp
"$(__git_merge_strategies)" "" "${cur##--strategy=}"
829 __gitcomp
"--onto --merge --strategy"
832 __gitcomp
"$(__git_refs)"
837 local cur
="${COMP_WORDS[COMP_CWORD]}"
838 local prv
="${COMP_WORDS[COMP_CWORD-1]}"
841 __gitcomp
"$(__git_remotes)"
845 __gitcomp
"$(__git_refs)"
849 local remote
="${prv#remote.}"
850 remote
="${remote%.fetch}"
851 __gitcomp
"$(__git_refs_remotes "$remote")"
855 local remote
="${prv#remote.}"
856 remote
="${remote%.push}"
857 __gitcomp
"$(git --git-dir="$
(__gitdir
)" \
858 for-each-ref --format='%(refname):%(refname)' \
862 pull.twohead|pull.octopus
)
863 __gitcomp
"$(__git_merge_strategies)"
866 color.branch|color.
diff|color.status
)
867 __gitcomp
"always never auto"
872 black red green yellow blue magenta cyan white
873 bold dim ul blink reverse
885 --global --system --file=
887 --get --get-all --get-regexp
888 --add --unset --unset-all
889 --remove-section --rename-section
894 local pfx
="${cur%.*}."
896 __gitcomp
"remote merge" "$pfx" "$cur"
900 local pfx
="${cur%.*}."
902 __gitcomp
"$(__git_heads)" "$pfx" "$cur" "."
906 local pfx
="${cur%.*}."
909 url fetch push skipDefaultUpdate
910 receivepack uploadpack tagopt
915 local pfx
="${cur%.*}."
917 __gitcomp
"$(__git_remotes)" "$pfx" "$cur" "."
926 core.preferSymlinkRefs
927 core.logAllRefUpdates
928 core.loosecompression
929 core.repositoryFormatVersion
930 core.sharedRepository
931 core.warnAmbiguousRefs
934 core.packedGitWindowSize
949 color.diff.whitespace
955 color.status.untracked
964 gitcvs.dbname gitcvs.dbdriver gitcvs.dbuser gitcvs.dvpass
967 gc.reflogexpireunreachable
980 i18n.logOutputEncoding
993 repack.useDeltaBaseOffset
999 receive.denyNonFastForwards
1003 whatchanged.difftree
1011 while [ $c -lt $COMP_CWORD ]; do
1012 i
="${COMP_WORDS[c]}"
1014 add|
rm|show|prune|update
) command="$i"; break ;;
1019 if [ $c -eq $COMP_CWORD -a -z "$command" ]; then
1020 __gitcomp
"add rm show prune update"
1026 __gitcomp
"$(__git_remotes)"
1029 local i c
='' IFS
=$
'\n'
1030 for i
in $
(git
--git-dir="$(__gitdir)" config
--list); do
1048 local cur
="${COMP_WORDS[COMP_CWORD]}"
1051 __gitcomp
"--mixed --hard --soft"
1055 __gitcomp
"$(__git_refs)"
1060 local cur
="${COMP_WORDS[COMP_CWORD]}"
1064 --max-count= --max-age= --since= --after=
1065 --min-age= --before= --until=
1067 --author= --committer= --grep=
1070 --numbered --summary
1075 __git_complete_revlist
1080 local cur
="${COMP_WORDS[COMP_CWORD]}"
1084 oneline short medium full fuller email raw
1085 " "" "${cur##--pretty=}"
1089 __gitcomp
"--pretty="
1098 __gitcomp
'list show apply clear'
1104 while [ $c -lt $COMP_CWORD ]; do
1105 i
="${COMP_WORDS[c]}"
1107 add|status|init|update
) command="$i"; break ;;
1112 if [ $c -eq $COMP_CWORD -a -z "$command" ]; then
1113 local cur
="${COMP_WORDS[COMP_CWORD]}"
1116 __gitcomp
"--quiet --cached"
1119 __gitcomp
"add status init update"
1129 while [ $c -lt $COMP_CWORD ]; do
1130 i
="${COMP_WORDS[c]}"
1133 __gitcomp
"$(__git_tags)"
1143 case "${COMP_WORDS[COMP_CWORD-1]}" in
1149 __gitcomp
"$(__git_tags)"
1155 __gitcomp
"$(__git_refs)"
1162 local i c
=1 command __git_dir
1164 while [ $c -lt $COMP_CWORD ]; do
1165 i
="${COMP_WORDS[c]}"
1167 --git-dir=*) __git_dir
="${i#--git-dir=}" ;;
1168 --bare) __git_dir
="." ;;
1169 --version|
--help|
-p|
--paginate) ;;
1170 *) command="$i"; break ;;
1175 if [ $c -eq $COMP_CWORD -a -z "$command" ]; then
1176 case "${COMP_WORDS[COMP_CWORD]}" in
1177 --*=*) COMPREPLY
=() ;;
1186 *) __gitcomp
"$(__git_commands) $(__git_aliases)" ;;
1191 local expansion
=$
(__git_aliased_command
"$command")
1192 [ "$expansion" ] && command="$expansion"
1197 apply
) _git_apply
;;
1198 bisect
) _git_bisect
;;
1199 bundle
) _git_bundle
;;
1200 branch
) _git_branch
;;
1201 checkout
) _git_checkout
;;
1202 cherry
) _git_cherry
;;
1203 cherry-pick
) _git_cherry_pick
;;
1204 commit
) _git_commit
;;
1205 config
) _git_config
;;
1206 describe
) _git_describe
;;
1208 fetch
) _git_fetch
;;
1209 format-patch
) _git_format_patch
;;
1212 ls-remote
) _git_ls_remote
;;
1213 ls-tree
) _git_ls_tree
;;
1215 merge-base
) _git_merge_base
;;
1216 name-rev
) _git_name_rev
;;
1219 rebase
) _git_rebase
;;
1220 remote
) _git_remote
;;
1221 reset) _git_reset
;;
1222 shortlog
) _git_shortlog
;;
1224 show-branch
) _git_log
;;
1225 stash
) _git_stash
;;
1226 submodule
) _git_submodule
;;
1228 whatchanged
) _git_log
;;
1235 local cur
="${COMP_WORDS[COMP_CWORD]}"
1238 __gitcomp
"--not --all"
1242 __git_complete_revlist
1245 complete
-o default
-o nospace
-F _git git
1246 complete
-o default
-o nospace
-F _gitk gitk
1247 complete
-o default
-o nospace
-F _git_am git-am
1248 complete
-o default
-o nospace
-F _git_apply git-apply
1249 complete
-o default
-o nospace
-F _git_bisect git-bisect
1250 complete
-o default
-o nospace
-F _git_branch git-branch
1251 complete
-o default
-o nospace
-F _git_bundle git-bundle
1252 complete
-o default
-o nospace
-F _git_checkout git-checkout
1253 complete
-o default
-o nospace
-F _git_cherry git-cherry
1254 complete
-o default
-o nospace
-F _git_cherry_pick git-cherry-pick
1255 complete
-o default
-o nospace
-F _git_commit git-commit
1256 complete
-o default
-o nospace
-F _git_describe git-describe
1257 complete
-o default
-o nospace
-F _git_diff git-diff
1258 complete
-o default
-o nospace
-F _git_fetch git-fetch
1259 complete
-o default
-o nospace
-F _git_format_patch git-format-patch
1260 complete
-o default
-o nospace
-F _git_gc git-gc
1261 complete
-o default
-o nospace
-F _git_log git-log
1262 complete
-o default
-o nospace
-F _git_ls_remote git-ls-remote
1263 complete
-o default
-o nospace
-F _git_ls_tree git-ls-tree
1264 complete
-o default
-o nospace
-F _git_merge git-merge
1265 complete
-o default
-o nospace
-F _git_merge_base git-merge-base
1266 complete
-o default
-o nospace
-F _git_name_rev git-name-rev
1267 complete
-o default
-o nospace
-F _git_pull git-pull
1268 complete
-o default
-o nospace
-F _git_push git-push
1269 complete
-o default
-o nospace
-F _git_rebase git-rebase
1270 complete
-o default
-o nospace
-F _git_config git-config
1271 complete
-o default
-o nospace
-F _git_remote git-remote
1272 complete
-o default
-o nospace
-F _git_reset git-reset
1273 complete
-o default
-o nospace
-F _git_shortlog git-shortlog
1274 complete
-o default
-o nospace
-F _git_show git-show
1275 complete
-o default
-o nospace
-F _git_stash git-stash
1276 complete
-o default
-o nospace
-F _git_submodule git-submodule
1277 complete
-o default
-o nospace
-F _git_log git-show-branch
1278 complete
-o default
-o nospace
-F _git_tag git-tag
1279 complete
-o default
-o nospace
-F _git_log git-whatchanged
1281 # The following are necessary only for Cygwin, and only are needed
1282 # when the user has tab-completed the executable name and consequently
1283 # included the '.exe' suffix.
1285 if [ Cygwin
= "$(uname -o 2>/dev/null)" ]; then
1286 complete
-o default
-o nospace
-F _git_add git-add.exe
1287 complete
-o default
-o nospace
-F _git_apply git-apply.exe
1288 complete
-o default
-o nospace
-F _git git.exe
1289 complete
-o default
-o nospace
-F _git_branch git-branch.exe
1290 complete
-o default
-o nospace
-F _git_bundle git-bundle.exe
1291 complete
-o default
-o nospace
-F _git_cherry git-cherry.exe
1292 complete
-o default
-o nospace
-F _git_describe git-describe.exe
1293 complete
-o default
-o nospace
-F _git_diff git-diff.exe
1294 complete
-o default
-o nospace
-F _git_format_patch git-format-patch.exe
1295 complete
-o default
-o nospace
-F _git_log git-log.exe
1296 complete
-o default
-o nospace
-F _git_ls_tree git-ls-tree.exe
1297 complete
-o default
-o nospace
-F _git_merge_base git-merge-base.exe
1298 complete
-o default
-o nospace
-F _git_name_rev git-name-rev.exe
1299 complete
-o default
-o nospace
-F _git_push git-push.exe
1300 complete
-o default
-o nospace
-F _git_config git-config
1301 complete
-o default
-o nospace
-F _git_shortlog git-shortlog.exe
1302 complete
-o default
-o nospace
-F _git_show git-show.exe
1303 complete
-o default
-o nospace
-F _git_log git-show-branch.exe
1304 complete
-o default
-o nospace
-F _git_tag git-tag.exe
1305 complete
-o default
-o nospace
-F _git_log git-whatchanged.exe