Angelo Borsotti [off-list ref] writes:
"It updates the named paths in the working tree from the index file or
from a named <tree-ish> ..."
It checks out the contents of the named paths out of either the
index or out of the tree-ish and stores that to a file in the
working tree. The working tree is not consulted by Git to tell what
paths the user wants to affect at all, but if you pass fileglob,
your shell may consult the working tree to expand it to concrete
pathnames it gives to Git.