Here is the list of undocumented long options I have found in git:
* --abbrev-commit (in revision.c) - I'm not sure _where_ it should
be added, as it afects most visible I think git-log, git-show,
git-rev-list. Implies --abbrev.
* --exclude-existing of git-show-ref; new option
* --reflog of git-show-branch, similar to --no-name and --ahs1-name
options I think; new option
* --timestamp option of git-rev-list. Bit strange, but perhaps useful.
I don't quite know what it does.
* --full-history option of git-rev-list (--full-diff just got
documented). I think it would be nice to have described while at it
git history simplification, and how options like --full-history, path
limiter, --parents interacts with it.
* --trivial option of git-read-tree. It looks like opposite of
(documented) --aggresive option, but source indicates that it might
be not exactly opposite.
* --thin and --no-thin of send-pack. It is plumbing option, but even
plumbing should be documented. Not sure which commands are affected by
this.