thoughtbot/gitsh

View on GitHub
etc/completions

Summary

Maintainability
Test Coverage
# This file defines tab completion options for gitsh(1).
# The file format is described by gitsh_completions(5).


# Common Git commands
# ===================

(add|stage) $opt* --? $path+
  --all
  --chmod $anything
  --dry-run
  --edit
  --force
  --ignore-errors
  --ignore-missing
  --ignore-removal
  --intent-to-add
  --interactive
  --no-all
  --no-ignore-removal
  --patch
  --refresh
  --update
  --verbose

blame $opt* $revision? --? $path
  --abbrev $anything
  --contents $path
  --date $anything
  --encoding $anything
  --incremental
  --indent-heuristic
  --line-porcelain
  --no-indent-heuristic
  --no-progress
  --porcelain
  --progress
  --reverse $revision
  --root
  --score-debug
  --show-email
  --show-name
  --show-number
  --show-stats
  --since $anything
  -L $anything
  -S $path

# Listing
branch $opt* $anything*
  --abbrev $anything
  --all
  --color (always|never|auto)
  --column $anything
  --contains $revision
  --ignore-case
  --list
  --merged $revision
  --no-abbrev
  --no-color
  --no-column
  --no-contains $revision
  --no-merged $revision
  --points-at $revision
  --remotes
  --sort $anything
  --verbose

# Creating
branch $opt* $anything $revision?
  --create-reflog
  --force
  --no-create-reflog
  --no-track
  --quiet
  --set-upstream
  --track

# Modifying
branch $opt $branch?
  --edit-description
  --set-upstream-to $anything
  --unset-upstream
  -u $anything

# Renaming
branch $opt+ $branch? $anything
  --force
  --move
  -M
  -m

# Deleting
branch $opt* $branch+
  --delete
  --force
  --quiet
  --remotes
  -d
  -D

checkout $opt* $revision?
  --confict (merge|diff3)
  --detach
  --force
  --ignore-other-worktrees
  --ignore-skip-worktree-bits
  --merge
  --no-progress
  --no-recurse-submodules
  --no-track
  --orphan $anything
  --ours
  --patch
  --progress
  --quiet
  --recurse-submodules
  --theirs
  --track
  -b $anything
  -B $anything

checkout $opt* $anything? --? $path+

cherry-pick $opt* $revision+
  --allow-empty
  --allow-empty-message
  --edit
  --ff
  --gpg-sign $anything?
  --keep-redundant-commits
  --mainline $anything
  --no-commit
  --signoff
  --strategy (resolve|recursive|octopus|ours|subtree)
  --strategy-option (ours|theirs|patience|diff-algorithm|ignore-space-change|ignore-all-space|ignore-space-at-eol|renormalize|no-renormalize|no-renames|find-renames|rename-threshold|subtree)
  -X (ours|theirs|patience|diff-algorithm|ignore-space-change|ignore-all-space|ignore-space-at-eol|renormalize|no-renormalize|no-renames|find-renames|rename-threshold|subtree)
  -m $anything

cherry-pick $opt
  --continue
  --quit
  --abort

commit $opt* --? $path*
  --all
  --allow-empty
  --allow-empty-message
  --amend
  --author $anything
  --branch
  --cleanup (strip|whitespace|verbatim|scissors|default)
  --date $anything
  --dry-run
  --edit
  --file $path
  --fixup $revision
  --gpg-sign $anything
  --include
  --interactive
  --long
  --message $anything
  --no-edit
  --no-gpg-sign
  --no-post-rewrite
  --no-status
  --no-verify
  --null
  --only
  --patch
  --porcelain
  --quiet
  --reedit-message $revision
  --reset-author
  --reuse-message $revision
  --short
  --signoff
  --squash $revision
  --status
  --template $path
  --untracked-files (no|normal|all)?
  --verbose
  -C $revision
  -F $path
  -c $revision
  -m $anything
  -t $path

config $opt*
  --add
  --blob $anything
  --bool
  --bool-or-int
  --edit
  --file $path
  --get
  --get-all
  --get-color $anything $anything?
  --get-colorbool $anything (true|false)?
  --get-regexp
  --get-urlmatch $anything $anything
  --global
  --includes
  --int
  --list
  --local
  --name-only
  --no-includes
  --null
  --path
  --remove-section
  --rename-section
  --replace-all
  --show-origin
  --system
  --unset
  --unset-all
  -f $path

diff $opt* ($revision|$revision $revision)? --? $path*
  --abbrev $anything?
  --binary
  --break-rewrites $anything?
  --cached
  --check
  --color (always|never|auto)
  --color-words $anything?
  --compaction-heuristic
  --diff-algorithm (default|patient|minimal|histogram|myers)
  --diff-filter $anything?
  --dirstat (changes|lines|files|cumulative)?
  --dst-prefix $anything
  --exit-code
  --ext-diff
  --find-copies $anything?
  --find-copies-harder
  --find-renames $anything?
  --full-index
  --function-context
  --histogram
  --ident-heuristic
  --ignore-all-space
  --ignore-blank-lines
  --ignore-space-at-eol
  --ignore-space-change
  --ignore-submodules (none|untracked|dirty|all)?
  --inter-hunk-context $anything
  --irreversible-delete
  --ita-invisible-in-index
  --line-prefix
  --minimal
  --name-only
  --name-status
  --no-color
  --no-compaction-heuristic
  --no-ext-diff
  --no-ident-heuristic
  --no-index
  --no-patch
  --no-prefix
  --no-renames
  --no-textconv
  --numstat
  --patch
  --patch-with-raw
  --patch-with-stat
  --patience
  --pickaxe-all
  --pickaxe-regex
  --quiet
  --raw
  --relative $path?
  --shortstat
  --src-prefix $anything
  --stat $anything?
  --submodule $anything
  --summary
  --text
  --textconv
  --unified $anything
  --word-diff (color|plain|porcelain|none)?
  --word-diff-regex $anything
  --ws-error-highlight (old|new|context)
  -S $anything

fetch $opt* $remote $revision
  --all
  --append
  --deepen $anything
  --depth $anything
  --dry-run
  --force
  --ipv4
  --ipv6
  --jobs $anything
  --keep
  --multiple
  --no-recurse-submodules
  --no-tags
  --progress
  --prune
  --quiet
  --recurse-submodules (yes|on-demand|no)?
  --recurse-submodules-default (yes|on-demand)?
  --refmap $anything
  --shallow-exclude $revision
  --shallow-since $anything
  --submodule-prefix $path
  --tags
  --unshallow
  --update-head-ok
  --update-shallow
  --upload-pack $anything
  --verbose
  -j $anything

grep $opt* $anything $revision* --? $path+
  --after-context $anything
  --all-match
  --and
  --basic-regexp
  --before-context $anything
  --break
  --cached
  --color (always|never|auto)
  --context $anything
  --count
  --exclude-standard
  --extended-regexp
  --files-with-matches
  --files-without-match
  --fixed-strings
  --full-name
  --function-context
  --heading
  --ignore-case
  --invert-match
  --line-number
  --max-depth $anything
  --name-only
  --no-color
  --no-exclude-standard
  --no-index
  --no-textconv
  --not $anything
  --null
  --open-files-in-pager $anything?
  --or
  --perl-regexp
  --quiet
  --recurse-submodules
  --show-function
  --text
  --textconv
  --threads $anything
  --untracked
  --word-regexp
  -f $path
  -C $anything
  -A $anything
  -B $anything

help $opt* ($command|attributes|everyday|glossary|ignore|modules|revisions|tutorial|workflows)
  --all
  --guides
  --info
  --man
  --web

init $opt* $path?
  --bare
  --quiet
  --separate-git-dir $path
  --shared (false|true|umask|group|all|world|everybody)?
  --template $path

log $opt* $revision? --? $path*
  --abbrev $anything?
  --abbrev-commit
  --after $anything
  --all
  --all-match
  --ancestry-path
  --author $anything
  --author-date-order
  --basic-regexp
  --before $anything
  --binary
  --bisect
  --boundary
  --branches $branch?
  --break-rewrites $anything?
  --cc
  --check
  --cherry
  --cherry-mark
  --cherry-pick
  --children
  --color (always|never|auto)
  --color-words $anything?
  --committer $anything
  --date (relative|local|iso8601|iso8601-strict|rfc2822|short|raw|unix|format:)
  --date-order
  --decorate (short|full|auto|no)
  --dense
  --diff-algorithm (default|patient|minimal|histogram|myers)
  --diff-filter $anything?
  --dirstat (changes|lines|files|cumulative)?
  --do-walk
  --dst-prefix $anything
  --encoding $anything
  --exclude $anything
  --expand-tabs $anything?
  --ext-diff
  --extended-regexp
  --find-copies $anything?
  --find-copies-harder
  --find-renames $anything?
  --first-parent
  --fixed-strings
  --follow
  --format (oneline|short|medium|full|fuller|email|raw|format:)
  --full-diff
  --full-history
  --full-index
  --function-context
  --glob $anything
  --graph
  --grep $anything
  --grep-reflog $anything
  --histogram
  --ident-heuristic
  --ignore-all-space
  --ignore-blank-lines
  --ignore-missing
  --ignore-space-at-eol
  --ignore-space-change
  --ignore-submodules (none|untracked|dirty|all)?
  --inter-hunk-context $anything
  --invert-grep
  --irreversible-delete
  --ita-invisible-in-index
  --left-only
  --left-right
  --line-prefix $anything
  --log-size
  --max-count $anything
  --max-parents $anything
  --merge
  --merges
  --minimal
  --min-parents $anything
  --name-only
  --name-status
  --no-abbrev-commit
  --no-color
  --no-deocrate
  --no-expand-tabs
  --no-ext-diff
  --no-ident-heuristic
  --no-max-parents
  --no-merges
  --no-min-parents
  --no-notes
  --no-patch
  --no-prefix
  --no-renames
  --no-standard-notes
  --no-textconv
  --no-walk (sorted|unsorted)?
  --not
  --notes $anything?
  --numstat
  --oneline
  --parents
  --patch
  --patch-with-raw
  --patch-with-stat
  --patience
  --perl-regexp
  --pickaxe-all
  --pickaxe-regex
  --pretty (oneline|short|medium|full|fuller|email|raw|format:)?
  --raw
  --reflog
  --regexp-ignore-case
  --relative $path?
  --relative-date
  --remotes $remote?
  --remove-empty
  --reverse
  --right-only
  --shortstat
  --show-linear-break $anything?
  --show-notes $anything?
  --show-signature
  --simplify-by-decoration
  --simplify-merges
  --since $anything
  --skip $anything
  --source
  --sparse
  --src-prefix $anything
  --standard-notes
  --stat $anything?
  --stdin
  --submodule $anything
  --summary
  --tags $tag?
  --text
  --textconv
  --topo-order
  --until $anything
  --unified $anything
  --use-mailmap
  --walk-reflogs
  --word-diff (color|plain|porcelain|none)?
  --word-diff-regex $anything
  --ws-error-highlight (old|new|context)
  -G $anything
  -L $anything
  -O $path
  -S $anything
  -n $anything

merge $opt* $revision*
  --abort
  --allow-unrelated-histories
  --commit
  --continue
  --edit
  --ff
  --ff-only
  --gpg-sign $anything?
  --log $anything?
  --no-commit
  --no-edit
  --no-ff
  --no-log
  --no-progress
  --no-rerere-autoupdate
  --no-squash
  --no-stat
  --no-summary
  --no-verify-signatures
  --progress
  --quiet
  --rerere-autoupdate
  --squash
  --stat
  --strategy (resolve|recursive|octopus|ours|subtree)
  --strategy-option (ours|theirs|patience|diff-algorithm|ignore-space-change|ignore-all-space|ignore-space-at-eol|renormalize|no-renormalize|no-renames|find-renames|rename-threshold|subtree)
  --summary
  --verbose
  --verify-signatures
  -m $anything
  -s (resolve|recursive|octopus|ours|subtree)
  -S $anything?
  -X (ours|theirs|patience|diff-algorithm|ignore-space-change|ignore-all-space|ignore-space-at-eol|renormalize|no-renormalize|no-renames|find-renames|rename-threshold|subtree)

mv $opt* $path+
  --dry-run
  --force
  --verbose

pull $opt* $remote $revision*
  --all
  --allow-unrelated-histories
  --append
  --autostash
  --commit
  --deepen $anything
  --depth $anything
  --edit
  --ff
  --ff-only
  --force
  --ipv4
  --ipv6
  --keep
  --log $anything?
  --no-autostash
  --no-commit
  --no-edit
  --no-ff
  --no-log
  --no-rebase
  --no-recurse-submodules
  --no-squash
  --no-stat
  --no-summary
  --no-tags
  --no-verify-signatures
  --progress
  --quiet
  --rebase (false|true|preserve|interactive)?
  --recurse-submodules (yes|on-demand|no)?
  --shallow-exclude $revision
  --shallow-since $anything?
  --squash
  --stat
  --strategy (resolve|recursive|octopus|ours|subtree)
  --strategy-option (ours|theirs|patience|diff-algorithm|ignore-space-change|ignore-all-space|ignore-space-at-eol|renormalize|no-renormalize|no-renames|find-renames|rename-threshold|subtree)
  --summary
  --unshallow
  --update-head-ok
  --update-shallow
  --upload-pack $anything
  --verbose
  --verify-signatures
  -s (resolve|recursive|octopus|ours|subtree)
  -X (ours|theirs|patience|diff-algorithm|ignore-space-change|ignore-all-space|ignore-space-at-eol|renormalize|no-renormalize|no-renames|find-renames|rename-threshold|subtree)

push $opt* $remote $revision*
  --all
  --atomic
  --delete
  --dry-run
  --exec $anything
  --follow-tags
  --force
  --force-with-lease $anything?
  --ipv4
  --ipv6
  --mirror
  --no-atomic
  --no-force-with-lease
  --no-recurse-submodules
  --no-signed
  --no-thin
  --no-verify
  --porcelain
  --progress
  --prune
  --push-option
  --quiet
  --receive-pack $anything
  --recurse-submodules (yes|on-demand|no)?
  --repo $remote
  --set-upstream
  --sign (true|false|if-asked)
  --signed
  --tags
  --thin
  --verbose
  --verify

rebase $opt* $revision+
  --abort
  --autosquash
  --autostash
  --committer-date-is-author-date
  --continue
  --edit-todo
  --exec $anything
  --force-rebase
  --fork-point
  --gpg-sign $anything
  --ignore-date
  --ignore-whitespace
  --interactive
  --keep-empty
  --merge
  --no-autosquash
  --no-autostash
  --no-ff
  --no-fork-point
  --no-stat
  --no-verify
  --onto $revision
  --preserve-merges
  --quiet
  --quit
  --root
  --signoff
  --skip
  --stat
  --strategy (resolve|recursive|octopus|ours|subtree)
  --strategy-option (ours|theirs|patience|diff-algorithm|ignore-space-change|ignore-all-space|ignore-space-at-eol|renormalize|no-renormalize|no-renames|find-renames|rename-threshold|subtree)
  --verbose
  --verify
  --whitespace (nowarn|warn|fix|error|error-all)
  -S $anything?
  -X (ours|theirs|patience|diff-algorithm|ignore-space-change|ignore-all-space|ignore-space-at-eol|renormalize|no-renormalize|no-renames|find-renames|rename-threshold|subtree)
  -s (resolve|recursive|octopus|ours|subtree)
  -x $anything

remote --verbose

remote add $opt* $anything $anything
  --tags
  --no-tags
  --mirror (fetch|push)
  -t $anything
  -m $anything

remote rename $remote $anything

remote remove $remote

remote set-head $opt* $remote $revision
  --auto
  --delete

remote set-branches $opt* $remote $revision+
  --add

remote get-url $opt* $remote
  --push
  --all

remote set-url $opt* $remote $anything
  --push
  --add
  --delete

remote (--verbose|-v)? show $opt* $remote+

remote prune $opt* $remote+
  --dry-run

remote (--verbose|-v)? update $opt* $remote+
  --prune

reset $opt* $revision? --? $path*
  --hard
  --keep
  --merge
  --mixed
  --patch
  --quiet
  --soft

revert $opt* $revision+
  --abort
  --continue
  --edit
  --gpg-sign $anything
  --mainline $anything
  --no-commit
  --no-edit
  --quit
  --signoff
  --strategy (resolve|recursive|octopus|ours|subtree)
  --strategy-option (ours|theirs|patience|diff-algorithm|ignore-space-change|ignore-all-space|ignore-space-at-eol|renormalize|no-renormalize|no-renames|find-renames|rename-threshold|subtree)
  -m $anything
  -X (ours|theirs|patience|diff-algorithm|ignore-space-change|ignore-all-space|ignore-space-at-eol|renormalize|no-renormalize|no-renames|find-renames|rename-threshold|subtree)

rm $opt* --? $path+
  --cached
  --dry-run
  --force
  --ignore-unmatch
  --quiet

show $opt* $revision+
  --abbrev-commit
  --encoding $anything
  --expand-tabs $anything?
  --format (oneline|short|medium|full|fuller|email|raw|format:)
  --no-abbrev-commit
  --no-expand-tabs
  --no-notes
  --no-standard-notes
  --notes $anything?
  --oneline
  --pretty (oneline|short|medium|full|fuller|email|raw|format:)?
  --show-notes $anything?
  --show-signature
  --standard-notes

show-branch $opt* $revision+
  --all
  --color (always|never|auto)?
  --current
  --date-order
  --independent
  --list
  --merge-base
  --more $anything
  --no-color
  --no-name
  --reflog $anything? $anything?
  --remotes
  --sha1-name
  --sparse
  --topics
  --topo-order

stash list

stash show $anything

stash drop $opt* $anything
  --quiet

stash (pop|apply) $opt* $anything
  --index
  --quiet

stash branch $anything $anything

stash save? $opt*
  --all
  --include-untracked
  --keep-index
  --no-keep-index
  --patch
  --quiet

stash clear

stash create

stash store $opt* $revision
  --message $anything
  --quiet
  -m $anything

status $opt* --? $path*
  --branch
  --column $anything?
  --ignore-submodules (none|untracked|dirty|all)?
  --ignored
  --long
  --no-column
  --porcelain $anything?
  --short
  --untracked-files (no|normal|all)?
  --verbose
  -u (no|normal|all)?

submodule --quiet? add $opt* --? $remote $path
  --branch $branch
  --depth $anything
  --force
  --name $anything
  --reference $remote
  -b $branch

submodule --quiet? status $opt* --? $path+
  --cached
  --recursive

submodule --quiet? init --? $path+

submodule --quiet? deinit $opt* --? $path+
  --all
  --force

submodule --quiet? update $opt* --? $path+
  --depth $anything
  --force
  --init
  --jobs $anything
  --merge
  --no-fetch
  --rebase
  --recursive
  --reference $remote
  --remote

submodule --quiet? foreach $opt* $anything
  --recursive

submodule --quiet? sync $opt* --? $path+
  --recursive

tag $opt* $tag $revision
  --annotate
  --cleanup (strip|whitespace|verbatim)
  --column $anything
  --contains $revision
  --create-reflog
  --delete $tag+
  --file $path
  --force
  --ignore-case
  --list $tag
  --local-user $anything
  --merged $revision
  --merged $revision?
  --message $anything
  --no-column
  --no-contains $revision
  --no-merged
  --no-merged $revision
  --points-at $revision
  --sign
  --sort $anything
  --verify
  -F $path
  -l $anything
  -m $anything
  -u $anything


# gitsh internal commands
# =======================

:set

:cd $path

:exit

:echo

:help (:set|:cd|:exit|:echo|:help|:source)

:source $path


# Git options with no command
# ===========================

$opt
  --version
  --help


# fallbacks
# =========

fallback::$command $opt* ($revision|$path|$remote)* -- $path*