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
132 --*=*) all
="$all$c$4$s" ;;
133 *.
) all
="$all$c$4$s" ;;
134 *) all
="$all$c$4 $s" ;;
140 COMPREPLY
=($
(compgen
-P "$2" -W "$all" -- "$cur"))
146 local cmd i is_hash
=y dir
="$(__gitdir "$1")"
147 if [ -d "$dir" ]; then
148 for i
in $
(git
--git-dir="$dir" \
149 for-each-ref
--format='%(refname)' \
151 echo "${i#refs/heads/}"
155 for i
in $
(git-ls-remote
"$1" 2>/dev
/null
); do
156 case "$is_hash,$i" in
159 n
,refs
/heads
/*) is_hash
=y
; echo "${i#refs/heads/}" ;;
160 n
,*) is_hash
=y
; echo "$i" ;;
167 local cmd i is_hash
=y dir
="$(__gitdir "$1")"
168 if [ -d "$dir" ]; then
169 for i
in $
(git
--git-dir="$dir" \
170 for-each-ref
--format='%(refname)' \
172 echo "${i#refs/tags/}"
176 for i
in $
(git-ls-remote
"$1" 2>/dev
/null
); do
177 case "$is_hash,$i" in
180 n
,refs
/tags
/*) is_hash
=y
; echo "${i#refs/tags/}" ;;
181 n
,*) is_hash
=y
; echo "$i" ;;
188 local cmd i is_hash
=y dir
="$(__gitdir "$1")"
189 if [ -d "$dir" ]; then
190 if [ -e "$dir/HEAD" ]; then echo HEAD
; fi
191 for i
in $
(git
--git-dir="$dir" \
192 for-each-ref
--format='%(refname)' \
193 refs
/tags refs
/heads refs
/remotes
); do
195 refs
/tags
/*) echo "${i#refs/tags/}" ;;
196 refs
/heads
/*) echo "${i#refs/heads/}" ;;
197 refs
/remotes
/*) echo "${i#refs/remotes/}" ;;
203 for i
in $
(git-ls-remote
"$dir" 2>/dev
/null
); do
204 case "$is_hash,$i" in
207 n
,refs
/tags
/*) is_hash
=y
; echo "${i#refs/tags/}" ;;
208 n
,refs
/heads
/*) is_hash
=y
; echo "${i#refs/heads/}" ;;
209 n
,refs
/remotes
/*) is_hash
=y
; echo "${i#refs/remotes/}" ;;
210 n
,*) is_hash
=y
; echo "$i" ;;
218 for i
in $
(__git_refs
"$1"); do
223 __git_refs_remotes
()
225 local cmd i is_hash
=y
226 for i
in $
(git-ls-remote
"$1" 2>/dev
/null
); do
227 case "$is_hash,$i" in
230 echo "$i:refs/remotes/$1/${i#refs/heads/}"
234 n
,refs
/tags
/*) is_hash
=y
;;
242 local i ngoff IFS
=$
'\n' d
="$(__gitdir)"
243 shopt -q nullglob || ngoff
=1
245 for i
in "$d/remotes"/*; do
246 echo ${i#$d/remotes/}
248 [ "$ngoff" ] && shopt -u nullglob
249 for i
in $
(git
--git-dir="$d" config
--list); do
259 __git_merge_strategies
()
261 if [ -n "$__git_merge_strategylist" ]; then
262 echo "$__git_merge_strategylist"
265 sed -n "/^all_strategies='/{
266 s/^all_strategies='//
270 }" "$(git --exec-path)/git-merge"
272 __git_merge_strategylist
=
273 __git_merge_strategylist
="$(__git_merge_strategies 2>/dev/null)"
275 __git_complete_file
()
277 local pfx
ls ref cur
="${COMP_WORDS[COMP_CWORD]}"
293 COMPREPLY
=($
(compgen
-P "$pfx" \
294 -W "$(git --git-dir="$
(__gitdir
)" ls-tree "$ls" \
295 | sed '/^100... blob /s,^.* ,,
304 __gitcomp
"$(__git_refs)"
309 __git_complete_revlist
()
311 local pfx cur
="${COMP_WORDS[COMP_CWORD]}"
316 __gitcomp
"$(__git_refs)" "$pfx" "$cur"
321 __gitcomp
"$(__git_refs)" "$pfx" "$cur"
327 __gitcomp
"$(__git_refs)"
334 if [ -n "$__git_commandlist" ]; then
335 echo "$__git_commandlist"
339 for i
in $
(git
help -a|
egrep '^ ')
342 *--*) : helper pattern
;;
343 applymbox
) : ask gittus
;;
344 applypatch
) : ask gittus
;;
345 archimport
) : import
;;
346 cat-file
) : plumbing
;;
347 check-attr
) : plumbing
;;
348 check-ref-format
) : plumbing
;;
349 commit-tree
) : plumbing
;;
350 cvsexportcommit
) : export;;
351 cvsimport
) : import
;;
352 cvsserver
) : daemon
;;
354 diff-files
) : plumbing
;;
355 diff-index
) : plumbing
;;
356 diff-tree
) : plumbing
;;
357 fast-import
) : import
;;
358 fsck-objects
) : plumbing
;;
359 fetch-pack
) : plumbing
;;
360 fmt-merge-msg
) : plumbing
;;
361 for-each-ref
) : plumbing
;;
362 hash-object
) : plumbing
;;
363 http-
*) : transport
;;
364 index-pack
) : plumbing
;;
365 init-db
) : deprecated
;;
366 local-fetch
) : plumbing
;;
367 mailinfo
) : plumbing
;;
368 mailsplit
) : plumbing
;;
369 merge-
*) : plumbing
;;
372 pack-objects
) : plumbing
;;
373 pack-redundant
) : plumbing
;;
374 pack-refs
) : plumbing
;;
375 parse-remote
) : plumbing
;;
376 patch-id
) : plumbing
;;
377 peek-remote
) : plumbing
;;
379 prune-packed
) : plumbing
;;
380 quiltimport
) : import
;;
381 read-tree
) : plumbing
;;
382 receive-pack
) : plumbing
;;
384 repo-config
) : deprecated
;;
386 rev-list
) : plumbing
;;
387 rev-parse
) : plumbing
;;
388 runstatus
) : plumbing
;;
389 sh-setup
) : internal
;;
391 send-pack
) : plumbing
;;
392 show-index
) : plumbing
;;
394 stripspace
) : plumbing
;;
395 symbolic-ref
) : plumbing
;;
396 tar-tree
) : deprecated
;;
397 unpack-file
) : plumbing
;;
398 unpack-objects
) : plumbing
;;
399 update-index
) : plumbing
;;
400 update-ref
) : plumbing
;;
401 update-server-info
) : daemon
;;
402 upload-archive
) : plumbing
;;
403 upload-pack
) : plumbing
;;
404 write-tree
) : plumbing
;;
405 verify-tag
) : plumbing
;;
411 __git_commandlist
="$(__git_commands 2>/dev/null)"
416 for i
in $
(git
--git-dir="$(__gitdir)" config
--list); do
426 __git_aliased_command
()
428 local word cmdline
=$
(git
--git-dir="$(__gitdir)" \
429 config
--get "alias.$1")
430 for word
in $cmdline; do
431 if [ "${word##-*}" ]; then
438 __git_find_subcommand
()
440 local word subcommand c
=1
442 while [ $c -lt $COMP_CWORD ]; do
443 word
="${COMP_WORDS[c]}"
444 for subcommand
in $1; do
445 if [ "$subcommand" = "$word" ]; then
454 __git_whitespacelist
="nowarn warn error error-all strip"
458 local cur
="${COMP_WORDS[COMP_CWORD]}"
459 if [ -d .dotest
]; then
460 __gitcomp
"--skip --resolved"
465 __gitcomp
"$__git_whitespacelist" "" "${cur##--whitespace=}"
470 --signoff --utf8 --binary --3way --interactive
480 local cur
="${COMP_WORDS[COMP_CWORD]}"
483 __gitcomp
"$__git_whitespacelist" "" "${cur##--whitespace=}"
488 --stat --numstat --summary --check --index
489 --cached --index-info --reverse --reject --unidiff-zero
490 --apply --no-add --exclude=
491 --whitespace= --inaccurate-eof --verbose
500 local cur
="${COMP_WORDS[COMP_CWORD]}"
503 __gitcomp
"--interactive --refresh"
511 local subcommands
="start bad good reset visualize replay log"
512 local subcommand
="$(__git_find_subcommand "$subcommands")"
513 if [ -z "$subcommand" ]; then
514 __gitcomp
"$subcommands"
518 case "$subcommand" in
520 __gitcomp
"$(__git_refs)"
530 local i c
=1 only_local_ref
="n" has_r
="n"
532 while [ $c -lt $COMP_CWORD ]; do
535 -d|
-m) only_local_ref
="y" ;;
541 case "${COMP_WORDS[COMP_CWORD]}" in
542 --*=*) COMPREPLY
=() ;;
545 --color --no-color --verbose --abbrev= --no-abbrev
550 if [ $only_local_ref = "y" -a $has_r = "n" ]; then
551 __gitcomp
"$(__git_heads)"
553 __gitcomp
"$(__git_refs)"
561 local mycword
="$COMP_CWORD"
562 case "${COMP_WORDS[0]}" in
564 local cmd
="${COMP_WORDS[2]}"
565 mycword
="$((mycword-1))"
568 local cmd
="${COMP_WORDS[1]}"
573 __gitcomp
"create list-heads verify unbundle"
581 __git_complete_revlist
590 __gitcomp
"$(__git_refs)"
595 __gitcomp
"$(__git_refs)"
600 local cur
="${COMP_WORDS[COMP_CWORD]}"
603 __gitcomp
"--edit --no-commit"
606 __gitcomp
"$(__git_refs)"
613 local cur
="${COMP_WORDS[COMP_CWORD]}"
617 --all --author= --signoff --verify --no-verify
618 --edit --amend --include --only
627 __gitcomp
"$(__git_refs)"
632 local cur
="${COMP_WORDS[COMP_CWORD]}"
635 __gitcomp
"--cached --stat --numstat --shortstat --summary
636 --patch-with-stat --name-only --name-status --color
637 --no-color --color-words --no-renames --check
638 --full-index --binary --abbrev --diff-filter
639 --find-copies-harder --pickaxe-all --pickaxe-regex
640 --text --ignore-space-at-eol --ignore-space-change
641 --ignore-all-space --exit-code --quiet --ext-diff
651 __gitcomp
"$(__git_refs)"
656 local cur
="${COMP_WORDS[COMP_CWORD]}"
658 case "${COMP_WORDS[0]},$COMP_CWORD" in
660 __gitcomp
"$(__git_remotes)"
663 __gitcomp
"$(__git_remotes)"
668 __gitcomp
"$(__git_refs)" "" "${cur#*:}"
672 case "${COMP_WORDS[0]}" in
673 git-fetch
) remote
="${COMP_WORDS[1]}" ;;
674 git
) remote
="${COMP_WORDS[2]}" ;;
676 __gitcomp
"$(__git_refs2 "$remote")"
685 local cur
="${COMP_WORDS[COMP_CWORD]}"
689 --stdout --attach --thread
691 --numbered --start-number
696 --full-index --binary
703 __git_complete_revlist
708 local cur
="${COMP_WORDS[COMP_CWORD]}"
711 __gitcomp
"--prune --aggressive"
720 __gitcomp
"$(__git_remotes)"
730 local cur
="${COMP_WORDS[COMP_CWORD]}"
734 oneline short medium full fuller email raw
735 " "" "${cur##--pretty=}"
740 relative iso8601 rfc2822 short local default
741 " "" "${cur##--date=}"
746 --max-count= --max-age= --since= --after=
747 --min-age= --before= --until=
748 --root --topo-order --date-order --reverse
750 --abbrev-commit --abbrev=
751 --relative-date --date=
752 --author= --committer= --grep=
754 --pretty= --name-status --name-only --raw
756 --left-right --cherry-pick
761 __git_complete_revlist
766 local cur
="${COMP_WORDS[COMP_CWORD]}"
767 case "${COMP_WORDS[COMP_CWORD-1]}" in
769 __gitcomp
"$(__git_merge_strategies)"
774 __gitcomp
"$(__git_merge_strategies)" "" "${cur##--strategy=}"
779 --no-commit --no-summary --squash --strategy
783 __gitcomp
"$(__git_refs)"
788 __gitcomp
"$(__git_refs)"
793 __gitcomp
"--tags --all --stdin"
798 local cur
="${COMP_WORDS[COMP_CWORD]}"
800 case "${COMP_WORDS[0]},$COMP_CWORD" in
802 __gitcomp
"$(__git_remotes)"
805 __gitcomp
"$(__git_remotes)"
809 case "${COMP_WORDS[0]}" in
810 git-pull
) remote
="${COMP_WORDS[1]}" ;;
811 git
) remote
="${COMP_WORDS[2]}" ;;
813 __gitcomp
"$(__git_refs "$remote")"
820 local cur
="${COMP_WORDS[COMP_CWORD]}"
822 case "${COMP_WORDS[0]},$COMP_CWORD" in
824 __gitcomp
"$(__git_remotes)"
827 __gitcomp
"$(__git_remotes)"
833 case "${COMP_WORDS[0]}" in
834 git-push
) remote
="${COMP_WORDS[1]}" ;;
835 git
) remote
="${COMP_WORDS[2]}" ;;
837 __gitcomp
"$(__git_refs "$remote")" "" "${cur#*:}"
840 __gitcomp
"$(__git_refs)" + "${cur#+}"
843 __gitcomp
"$(__git_refs)"
852 local cur
="${COMP_WORDS[COMP_CWORD]}" dir
="$(__gitdir)"
853 if [ -d .dotest
] ||
[ -d "$dir"/.dotest-merge
]; then
854 __gitcomp
"--continue --skip --abort"
857 case "${COMP_WORDS[COMP_CWORD-1]}" in
859 __gitcomp
"$(__git_merge_strategies)"
864 __gitcomp
"$(__git_merge_strategies)" "" "${cur##--strategy=}"
868 __gitcomp
"--onto --merge --strategy --interactive"
871 __gitcomp
"$(__git_refs)"
876 local cur
="${COMP_WORDS[COMP_CWORD]}"
877 local prv
="${COMP_WORDS[COMP_CWORD-1]}"
880 __gitcomp
"$(__git_remotes)"
884 __gitcomp
"$(__git_refs)"
888 local remote
="${prv#remote.}"
889 remote
="${remote%.fetch}"
890 __gitcomp
"$(__git_refs_remotes "$remote")"
894 local remote
="${prv#remote.}"
895 remote
="${remote%.push}"
896 __gitcomp
"$(git --git-dir="$
(__gitdir
)" \
897 for-each-ref --format='%(refname):%(refname)' \
901 pull.twohead|pull.octopus
)
902 __gitcomp
"$(__git_merge_strategies)"
905 color.branch|color.
diff|color.status
)
906 __gitcomp
"always never auto"
911 black red green yellow blue magenta cyan white
912 bold dim ul blink reverse
924 --global --system --file=
926 --get --get-all --get-regexp
927 --add --unset --unset-all
928 --remove-section --rename-section
933 local pfx
="${cur%.*}."
935 __gitcomp
"remote merge" "$pfx" "$cur"
939 local pfx
="${cur%.*}."
941 __gitcomp
"$(__git_heads)" "$pfx" "$cur" "."
945 local pfx
="${cur%.*}."
948 url fetch push skipDefaultUpdate
949 receivepack uploadpack tagopt
954 local pfx
="${cur%.*}."
956 __gitcomp
"$(__git_remotes)" "$pfx" "$cur" "."
965 core.preferSymlinkRefs
966 core.logAllRefUpdates
967 core.loosecompression
968 core.repositoryFormatVersion
969 core.sharedRepository
970 core.warnAmbiguousRefs
972 core.packedGitWindowSize
987 color.diff.whitespace
993 color.status.untracked
1002 gitcvs.dbname gitcvs.dbdriver gitcvs.dbuser gitcvs.dbpass
1003 gitcvs.dbtablenameprefix
1006 gc.reflogexpireunreachable
1019 i18n.logOutputEncoding
1029 pack.deltaCacheLimit
1032 repack.useDeltaBaseOffset
1036 transfer.unpackLimit
1038 receive.denyNonFastForwards
1042 whatchanged.difftree
1049 local subcommands
="add rm show prune update"
1050 local subcommand
="$(__git_find_subcommand "$subcommands")"
1051 if [ -z "$subcommand" ]; then
1055 case "$subcommand" in
1057 __gitcomp
"$(__git_remotes)"
1060 local i c
='' IFS
=$
'\n'
1061 for i
in $
(git
--git-dir="$(__gitdir)" config
--list); do
1079 local cur
="${COMP_WORDS[COMP_CWORD]}"
1082 __gitcomp
"--mixed --hard --soft"
1086 __gitcomp
"$(__git_refs)"
1091 local cur
="${COMP_WORDS[COMP_CWORD]}"
1095 --max-count= --max-age= --since= --after=
1096 --min-age= --before= --until=
1098 --author= --committer= --grep=
1101 --numbered --summary
1106 __git_complete_revlist
1111 local cur
="${COMP_WORDS[COMP_CWORD]}"
1115 oneline short medium full fuller email raw
1116 " "" "${cur##--pretty=}"
1120 __gitcomp
"--pretty="
1129 local subcommands
='save list show apply clear drop pop create'
1130 if [ -z "$(__git_find_subcommand "$subcommands")" ]; then
1131 __gitcomp
"$subcommands"
1137 local subcommands
="add status init update"
1138 if [ -z "$(__git_find_subcommand "$subcommands")" ]; then
1139 local cur
="${COMP_WORDS[COMP_CWORD]}"
1142 __gitcomp
"--quiet --cached"
1145 __gitcomp
"$subcommands"
1155 init fetch clone rebase dcommit log find-rev
1156 set-tree commit-diff info create-ignore propget
1157 proplist show-ignore show-externals
1159 local subcommand
="$(__git_find_subcommand "$subcommands")"
1160 if [ -z "$subcommand" ]; then
1161 __gitcomp
"$subcommands"
1163 local remote_opts
="--username= --config-dir= --no-auth-cache"
1165 --follow-parent --authors-file= --repack=
1166 --no-metadata --use-svm-props --use-svnsync-props
1167 --log-window-size= --no-checkout --quiet
1168 --repack-flags --user-log-author $remote_opts
1171 --template= --shared= --trunk= --tags=
1172 --branches= --stdlayout --minimize-url
1173 --no-metadata --use-svm-props --use-svnsync-props
1174 --rewrite-root= $remote_opts
1177 --edit --rmdir --find-copies-harder --copy-similarity=
1180 local cur
="${COMP_WORDS[COMP_CWORD]}"
1181 case "$subcommand,$cur" in
1183 __gitcomp
"--revision= --fetch-all $fc_opts"
1186 __gitcomp
"--revision= $fc_opts $init_opts"
1189 __gitcomp
"$init_opts"
1193 --merge --strategy= --verbose --dry-run
1194 --fetch-all --no-rebase $cmt_opts $fc_opts
1198 __gitcomp
"--stdin $cmt_opts $fc_opts"
1200 create-ignore
,--*|propget
,--*|proplist
,--*|show-ignore
,--*|\
1202 __gitcomp
"--revision="
1206 --limit= --revision= --verbose --incremental
1207 --oneline --show-commit --non-recursive
1213 --merge --verbose --strategy= --local
1214 --fetch-all $fc_opts
1218 __gitcomp
"--message= --file= --revision= $cmt_opts"
1233 while [ $c -lt $COMP_CWORD ]; do
1234 i
="${COMP_WORDS[c]}"
1237 __gitcomp
"$(__git_tags)"
1247 case "${COMP_WORDS[COMP_CWORD-1]}" in
1253 __gitcomp
"$(__git_tags)"
1259 __gitcomp
"$(__git_refs)"
1266 local i c
=1 command __git_dir
1268 while [ $c -lt $COMP_CWORD ]; do
1269 i
="${COMP_WORDS[c]}"
1271 --git-dir=*) __git_dir
="${i#--git-dir=}" ;;
1272 --bare) __git_dir
="." ;;
1273 --version|
--help|
-p|
--paginate) ;;
1274 *) command="$i"; break ;;
1279 if [ -z "$command" ]; then
1280 case "${COMP_WORDS[COMP_CWORD]}" in
1281 --*=*) COMPREPLY
=() ;;
1293 *) __gitcomp
"$(__git_commands) $(__git_aliases)" ;;
1298 local expansion
=$
(__git_aliased_command
"$command")
1299 [ "$expansion" ] && command="$expansion"
1304 apply
) _git_apply
;;
1305 bisect
) _git_bisect
;;
1306 bundle
) _git_bundle
;;
1307 branch
) _git_branch
;;
1308 checkout
) _git_checkout
;;
1309 cherry
) _git_cherry
;;
1310 cherry-pick
) _git_cherry_pick
;;
1311 commit
) _git_commit
;;
1312 config
) _git_config
;;
1313 describe
) _git_describe
;;
1315 fetch
) _git_fetch
;;
1316 format-patch
) _git_format_patch
;;
1319 ls-remote
) _git_ls_remote
;;
1320 ls-tree
) _git_ls_tree
;;
1322 merge-base
) _git_merge_base
;;
1323 name-rev
) _git_name_rev
;;
1326 rebase
) _git_rebase
;;
1327 remote
) _git_remote
;;
1328 reset) _git_reset
;;
1329 shortlog
) _git_shortlog
;;
1331 show-branch
) _git_log
;;
1332 stash
) _git_stash
;;
1333 submodule
) _git_submodule
;;
1336 whatchanged
) _git_log
;;
1343 local cur
="${COMP_WORDS[COMP_CWORD]}"
1346 __gitcomp
"--not --all"
1350 __git_complete_revlist
1353 complete
-o default
-o nospace
-F _git git
1354 complete
-o default
-o nospace
-F _gitk gitk
1355 complete
-o default
-o nospace
-F _git_am git-am
1356 complete
-o default
-o nospace
-F _git_apply git-apply
1357 complete
-o default
-o nospace
-F _git_bisect git-bisect
1358 complete
-o default
-o nospace
-F _git_branch git-branch
1359 complete
-o default
-o nospace
-F _git_bundle git-bundle
1360 complete
-o default
-o nospace
-F _git_checkout git-checkout
1361 complete
-o default
-o nospace
-F _git_cherry git-cherry
1362 complete
-o default
-o nospace
-F _git_cherry_pick git-cherry-pick
1363 complete
-o default
-o nospace
-F _git_commit git-commit
1364 complete
-o default
-o nospace
-F _git_describe git-describe
1365 complete
-o default
-o nospace
-F _git_diff git-diff
1366 complete
-o default
-o nospace
-F _git_fetch git-fetch
1367 complete
-o default
-o nospace
-F _git_format_patch git-format-patch
1368 complete
-o default
-o nospace
-F _git_gc git-gc
1369 complete
-o default
-o nospace
-F _git_log git-log
1370 complete
-o default
-o nospace
-F _git_ls_remote git-ls-remote
1371 complete
-o default
-o nospace
-F _git_ls_tree git-ls-tree
1372 complete
-o default
-o nospace
-F _git_merge git-merge
1373 complete
-o default
-o nospace
-F _git_merge_base git-merge-base
1374 complete
-o default
-o nospace
-F _git_name_rev git-name-rev
1375 complete
-o default
-o nospace
-F _git_pull git-pull
1376 complete
-o default
-o nospace
-F _git_push git-push
1377 complete
-o default
-o nospace
-F _git_rebase git-rebase
1378 complete
-o default
-o nospace
-F _git_config git-config
1379 complete
-o default
-o nospace
-F _git_remote git-remote
1380 complete
-o default
-o nospace
-F _git_reset git-reset
1381 complete
-o default
-o nospace
-F _git_shortlog git-shortlog
1382 complete
-o default
-o nospace
-F _git_show git-show
1383 complete
-o default
-o nospace
-F _git_stash git-stash
1384 complete
-o default
-o nospace
-F _git_submodule git-submodule
1385 complete
-o default
-o nospace
-F _git_svn git-svn
1386 complete
-o default
-o nospace
-F _git_log git-show-branch
1387 complete
-o default
-o nospace
-F _git_tag git-tag
1388 complete
-o default
-o nospace
-F _git_log git-whatchanged
1390 # The following are necessary only for Cygwin, and only are needed
1391 # when the user has tab-completed the executable name and consequently
1392 # included the '.exe' suffix.
1394 if [ Cygwin
= "$(uname -o 2>/dev/null)" ]; then
1395 complete
-o default
-o nospace
-F _git_add git-add.exe
1396 complete
-o default
-o nospace
-F _git_apply git-apply.exe
1397 complete
-o default
-o nospace
-F _git git.exe
1398 complete
-o default
-o nospace
-F _git_branch git-branch.exe
1399 complete
-o default
-o nospace
-F _git_bundle git-bundle.exe
1400 complete
-o default
-o nospace
-F _git_cherry git-cherry.exe
1401 complete
-o default
-o nospace
-F _git_describe git-describe.exe
1402 complete
-o default
-o nospace
-F _git_diff git-diff.exe
1403 complete
-o default
-o nospace
-F _git_format_patch git-format-patch.exe
1404 complete
-o default
-o nospace
-F _git_log git-log.exe
1405 complete
-o default
-o nospace
-F _git_ls_tree git-ls-tree.exe
1406 complete
-o default
-o nospace
-F _git_merge_base git-merge-base.exe
1407 complete
-o default
-o nospace
-F _git_name_rev git-name-rev.exe
1408 complete
-o default
-o nospace
-F _git_push git-push.exe
1409 complete
-o default
-o nospace
-F _git_config git-config
1410 complete
-o default
-o nospace
-F _git_shortlog git-shortlog.exe
1411 complete
-o default
-o nospace
-F _git_show git-show.exe
1412 complete
-o default
-o nospace
-F _git_log git-show-branch.exe
1413 complete
-o default
-o nospace
-F _git_tag git-tag.exe
1414 complete
-o default
-o nospace
-F _git_log git-whatchanged.exe