Take this for example:
pgist:master λ git rebase --abort --
--abort (Abort the rebase operation)
--autosquash (Automatic squashing)
--continue (Restart the rebasing process)
--force-rebase (Force the rebase)
--help (Display the manual of a git command)
--interactive (Interactive mode)
--keep-empty (Keep the commits that don't cahnge anything)
--merge (Use merging strategies to rebase)
--no-autosquash (No automatic squashing)
--no-ff (No fast-forward)
--no-stat (Don't show diffstat of the rebase)
--no-verify (Don't allow the pre-rebase hook to run)
--preserve-merges (Try to recreate merges)
--quiet (Be quiet)
--root (Rebase all reachable commits)
--skip (Restart the rebasing process by skipping the current patch)
--stat (Show diffstat of the rebase)
--verbose (Be verbose)
--verify (Allow the pre-rebase hook to run)
Since --abort has existed , we should avoid showing it again!
There would need to be a way to disable this; many utilities accept the same option multiple times. For example, rdiff-backup supports multiple --except flags.
@zanchey yeah, there should be a way to disable this in each option, for example , add a -m option in complete command.
Actually, there is already a way for it, but it works only with single options given as the same argument. For example, if you type perl -n, it won't propose perl -nn as tab competion.