From: Dirk Gouders Date: Sat, 09 Mar 2024 22:27:13 GMT Subject: Informative: git-options.txt Message-ID: Recently, I followed the discussion [1] and I thought: let's look at the manual pages to see what options Git currently uses -- just out of curiosity and for learning about Git. That were 160 manual pages to visit and if I counted correctly, there are 1160 different option strings -- some of them related and only differing in details. The attached file doesn't always say anything about semantics that sometimes is totally different (for -h, for example). I thought that could be interesting to some of you, as well, so I send it to the list. Some points I noticed: - SYNOPSIS not always matches OPTIONS (e.g. git(1)) and in those cases [] would probably a better solution. - Options that require arguments are often listed without those arguments in OPTIONS but those arguments are talked about and one has to go to SYNOPSIS to come to know the order of those arguments (e.g. git branch -m) Should you wonder about the sorting, I tried to stick to the following rules: - Take the strings as they appear in the OPTIONS sections -- no splitting. - Primarily sort by letters and numbers. - Sort by the first option, then by the second. Arguments are only used within those groups. - I changed the rules on the way, so there may be errors. Disclaimer: because manually created this file isn't 100% correct but I gave my best. On the way I noticed that sometimes options appear at unexpected places, so I for sure missed some. At least this perhaps serves amusing purposes ;-) Who knows, perhaps you think git-options(7) would be a valuable addition. I think it can be automatically generated with a moderate amount of work. Or the attached file could be used for some SoC micro-procect or the like... Dirk [1] https://lore.kernel.org/git/ef5958e1-af3f-4869-b0e3-ff1448c0d73c@gmail.com/T/#t ... git-rev-parse(1) / git-archimport(1) base-name git-pack-objects(1) git-range-diff(1) git-checkout(1) git-rebase(1) git-branch(1) [] git(1) ... git-cherry-pick(1) git-merge(1) git-revert(1) commit-id git-http-fetch(1) ... git-describe(1) git-cvsimport(1) git-clone(1) git-cvsserver(1) git-daemon(1) git-request-pull(1) git-ls-files(1) git-receive-pack(1) [...] git-fast-export(1) git-bundle(1) git-fetch(1) git-cherry(1) ... git-prune(1) git-cherry(1) git-mailsplit(1) git-mailsplit(1) (|)... git-am(1) git-mailinfo(1) git-checkout(1) git-branch(1) git-cat-file(1) git-fsck(1) git-branch(1) git-mailinfo(1) ... git-apply(1) ... git-add(1) git-checkout(1) git-commit(1) git-grep(1) git-reset(1) git-restore(1) git-rm(1) git-archive(1) [...] git-ls-tree(1) ... git-diff(1) git-diff-tree(1) gitk(1) git-log(1) git-reflog(1) git-log(1) git-reflog(1) git-rev-list(1) ... git-for-each-ref(1) ... git-ls-remote(1) git-range-diff(1) [...] git-bundle(1) ... git-http-push(1) ... git-fetch-pack(1) git-fetch(1) git-pull(1) ... git-push(1) git-clone(1) git-fetch(1) git-fetch-pack(1) git-ls-remote(1) git-pull(1) git-push(1) ... git-range-diff(1) gitk(1) git-log(1) git-reflog(1) ... git-filter-branch(1) git-credential-cache--daemon(1) git-commit-graph(1) git-request-pull(1) git-branch(1) git-checkout(1) git-commit-tree(1) ... git-grep(1) git-archive(1) git-checkout(1) git-diff-index(1) git-diff-tree(1) git-ls-tree(1) git-read-tree(1) git-cat-file(1) git-request-pull(1) git-cherry(1) git-rebase(1) - git-format-patch(1) -/ git-p4(1) -, -C , --context git-grep(1) -, -n , --max-count= git-log(1) git-reflog(1) git-rev-list(1) -0 git-diff(1) -1 --base, -2 --ours, -3 --theirs git-diff(1) git-diff-files(1) -3, --3way git-apply(1) -3, --3way, --no-3way git-am(1) -4, --ipv4 git-fetch(1) git-pull(1) git-push(1) -6, --ipv6 git-fetch(1) git-pull(1) git-push(1) --8bit-encoding= git-send-email(1) -A git-repack(1) -A git-cvsimport(1) -A , --after-context git-grep(1) -A, --all, --no-ignore-removal git-add(1) -a git-archimport(1) git-cvsexportcommit(1) git-cvsimport(1) git-merge-index(1) git-repack(1) -a, -c, -t git-http-fetch(1) -a, --all git-branch(1) git-check-attr(1) git-checkout-index(1) git-commit(1) git-help(1) git-merge-base(1) -a, --append git-fetch(1) git-pull(1) -a, --text git-diff(1) git-diff-files(1) git-diff-index(1) git-diff-tree(1) git-format-patch(1) git-grep(1) git-log(1) git-reflog(1) --abbrev[=] git-diff(1) git-diff-files(1) git-diff-index(1) git-diff-tree(1) git-format-patch(1) git-ls-files(1) git-ls-tree(1) --abbrev= git-blame(1) git-branch(1) git-describe(1) git-log(1) git-reflog(1) --abbrev-commit git-diff-tree(1) git-log(1) git-reflog(1) git-rev-list(1) --abbrev-ref[=(strict|loose)] git-rev-parse(1) --abort git-am(1) git-cherry-pick(1) git-merge(1) git-notes(1) git-rebase(1) git-revert(1) --absolute-git-dir git-rev-parse(1) --access-hook= git-daemon(1) --active-branches= git-fast-import(1) --add git-config(1) --add-file= git-archive(1) --add-header=
git-format-patch(1) --add-virtual-file=: git-archive(1) --aggressive git-gc(1) git-read-tree(1) --all git-describe(1) git-fetch(1) git-fetch-pack(1) git-http-push(1) gitk(1) git-log(1) git-reflog(1) git-name-rev(1) git-pack-objects(1) git-pack-redundant(1) git-pack-refs(1) git-pull(1) git-reflog(1) git-rev-list(1) git-rev-parse(1) --all, --branches git-push(1) --all-match git-grep(1) git-log(1) git-reflog(1) git-rev-list(1) --all-progress git-pack-objects(1) --all-progress-implied git-pack-objects(1) --allow-binary-replacement, --binary git-apply(1) --allow-empty git-am(1) git-apply(1) git-cherry-pick(1) git-commit(1) git-notes(1) --allow-empty-message git-cherry-pick(1) git-commit(1) git-rebase(1) --[no-]allow-onelevel git-check-ref-format(1) --allow-override=, --forbid-override= git-daemon(1) --allow-unknown-type git-cat-file(1) --allow-unrelated-histories git-merge(1) git-merge-tree(1) git-pull(1) --allow-unsafe-features git-fast-import(1) --also-filter-submodules git-clone(1) --alternate-refs git-log(1) git-reflog(1) git-rev-list(1) --alt-odb git-pack-redundant(1) --always git-describe(1) git-diff-tree(1) git-format-patch(1) git-name-rev(1) --amend git-commit(1) --ancestry-path gitk(1) --ancestry-path[=] git-log(1) git-reflog(1) git-rev-list(1) --anchored= git-diff(1) git-diff-files(1) git-diff-index(1) git-diff-tree(1) git-format-patch(1) git-log(1) git-reflog(1) --and, --or, --not, ( ... ) git-grep(1) --annotate git-send-email(1) --annotate-stdin git-name-rev(1) --anonymize git-fast-export(1) --anonymize-map=[:] --append git-commit-graph(1) --apply git-apply(1) git-rebase(1) --argscmd= gitk(1) --atomic git-fetch(1) git-pull(1) --[no-]atomic git-push(1) --attach[=] git-format-patch(1) --attr-source= git(1) --auto git-gc(1) --author Author Name git-quiltimport(1) --author= git-commit(1) --author=, --committer= git-log(1) git-reflog(1) git-rev-list(1) --author-date-order git-log(1) git-reflog(1) git-rev-list(1) --[no-]auto-maintenance, --[no-]auto-gc git-fetch(1) --autosquash, --no-autosquash git-rebase(1) --autostash, --no-autostash git-merge(1) git-pull(1) git-rebase(1) -B git-checkout(1) -B , --before-context git-grep(1) -B[][/], --break-rewrites[=[][/]] git-diff(1) git-diff-files(1) git-diff-index(1) git-diff-tree(1) git-format-patch(1) git-log(1) git-reflog(1) -b git-annotate(1) git-blame(1) git-mailinfo(1) git-mailsplit(1) -b , --initial-branch= git-init(1) -b , --branch git-clone(1) -b git-checkout(1) -b, --browser git-instaweb(1) -b, --ignore-space-change git-diff(1) git-diff-files(1) git-diff-index(1) git-diff-tree(1) git-format-patch(1) git-log(1) git-reflog(1) -b, --write-bitmap-index git-repack(1) --bare git(1) git-clone(1) git-init(1) git-p4(1) --[no-]base[=] git-format-patch(1) --base-path= git-daemon(1) --base-path git-cvsserver(1) --base-path-relaxed git-daemon(1) --basic-regexp git-log(1) git-reflog(1) git-rev-list(1) --bcc=
,... git-send-email(1) --branch git-p4(1) --branch git-p4(1) --branches[=] git-log(1) git-reflog(1) git-rev-list(1) --branches[=], --tags[=], --remotes[=] gitk(1) git-rev-parse(1) --break git-grep(1) --batch git-mktree(1) --batch, --batch= git-cat-file(1) --batch-all-objects git-cat-file(1) --batch-check, --batch-check= git-cat-file(1) --batch-command, --batch-command= git-cat-file(1) --big-file-threshold= git-fast-import(1) --binary git-diff(1) git-diff-files(1) git-diff-index(1) git-diff-tree(1) git-format-patch(1) git-log(1) git-reflog(1) --bisect git-log(1) git-reflog(1) git-rev-list(1) --bisect-all git-rev-list(1) --bisect-vars git-rev-list(1) --[no-]bitmap git-multi-pack-index(1) --blob git-config(1) --bool, --int, --bool-or-int, --path, --expiry-date git-config(1) --boundary git-log(1) git-reflog(1) git-rev-list(1) --branch git-commit(1) --buffer git-cat-file(1) --build-fake-ancestor= git-apply(1) --bundle-uri= git-clone(1) -C git-branch(1) -C[], --find-copies[=] git-diff(1) git-diff-files(1) git-diff-index(1) git-diff-tree(1) git-format-patch(1) git-log(1) git-reflog(1) -C git-apply(1) git-rebase(1) -C[] git-annotate(1) git-blame(1) -C , --reuse-message= git-commit(1) -C , --reuse-message= git-notes(1) -C git(1) -C git-cvsimport(1) -c git-blame(1) git-cvsexportcommit(1) git-diff-tree(1) git-log(1) git-reflog(1) -c , --reedit-message= git-commit(1) -c =, --config = git-clone(1) -c , --reedit-message= git-notes(1) -c = git(1) -c, --cached git-ls-files(1) -c, --cc git-diff-files(1) -c, --config git-help(1) -c, --copy git-branch(1) -c, --count git-grep(1) -c, --scissors git-am(1) --cache git-fsck(1) --cached git-apply(1) git-check-attr(1) git-diff-index(1) git-grep(1) git-rm(1) --candidates= git-describe(1) --cat-blob-fd= git-fast-import(1) --cc git-diff-tree(1) git-log(1) git-reflog(1) --cc=
,... git-send-email(1) --cc= git-format-patch(1) --changed-paths git-commit-graph(1) --changes-block-size git-p4(1) --changesfile git-p4(1) --check git-apply(1) git-diff(1) git-diff-files(1) git-diff-index(1) git-diff-tree(1) git-log(1) git-reflog(1) --check-self-contained-and-connected git-fetch-pack(1) git-index-pack(1) --cherry git-log(1) git-reflog(1) git-rev-list(1) --cherry-mark git-log(1) git-reflog(1) git-rev-list(1) --cherry-pick git-log(1) git-reflog(1) git-rev-list(1) --chmod=(+|-)x --children git-log(1) git-reflog(1) git-rev-list(1) --cleanup= git-cherry-pick(1) git-commit(1) git-merge(1) git-pull(1) git-revert(1) --clear-decorations git-log(1) git-reflog(1) --color[=] git-branch(1) git-diff(1) git-diff-files(1) git-diff-index(1) git-diff-tree(1) git-for-each-ref(1) git-grep(1) git-log(1) git-reflog(1) --color-by-age git-annotate(1) git-blame(1) --color-moved[=] git-diff(1) git-diff-files(1) git-diff-index(1) git-diff-tree(1) git-log(1) git-reflog(1) --color-moved-ws= git-diff(1) git-diff-files(1) git-diff-index(1) git-diff-tree(1) git-log(1) git-reflog(1) --color-lines git-annotate(1) git-blame(1) --color-words[=] git-diff(1) git-diff-files(1) git-diff-index(1) git-diff-tree(1) git-log(1) git-reflog(1) --column git-grep(1) --column[=], --no-column git-branch(1) --combined-all-paths git-diff-tree(1) git-log(1) git-reflog(1) --command= git-column(1) --commit git-notes(1) --commit (|..) git-p4(1) --commit, --no-commit git-merge(1) git-pull(1) --commit-filter git-filter-branch(1) --commit-header git-rev-list(1) --committer-date-is-author-date git-am(1) git-rebase(1) --compact-summary git-diff(1) git-diff-files(1) git-diff-index(1) git-diff-tree(1) git-format-patch(1) git-log(1) git-reflog(1) --compose git-send-email(1) --compose-encoding= git-send-email(1) --compression= git-pack-objects(1) --connectivity-only git-fsck(1) --config= git-for-each-repo(1) --config-env== git(1) --conflict=(ask|skip|quit) git-p4(1) --conflict=