Nguyen Thai Ngoc Duy <pclouds@xxxxxxxxx> writes: > On Mon, Sep 3, 2012 at 8:42 PM, Angelo Borsotti > <angelo.borsotti@xxxxxxxxx> wrote: >> $ git checkout 94d8 -- * >> $ ls >> f1 >> >> Note that the work directory is empty when the checkout is done, and >> that the checkout restores f1 >> in it, a file that is not denoted by the * pathspec. > > I think in this case '*' remains unexpanded by the shell. Which means > it is still a pathspec to checkout (iow equivalent to "git checkout > 94d8 -- '*'"). Checkout in turns matches the pathspec '*' against the > tree and decides to restore 'fl'. > > It's confusing but I don't think there's much we can do about it. The user can, by telling the shell to expand '*' that does not match to nothing, though. Is there anything that is confusing in our documentation? I am not looking for a change to the documentation that protects it from getting misunderstood by deliberately twisted interpretations (such a change would make the resulting text would harder to read), but I do want to make sure it is not prone to confusion even to a casual and careless reader. For this particular scenario, I do not see anything offhand that is unclear about the behaviour of Git in the documentation, even though as you pointed out, if the user is unaware that the shell passes globs unmodified when they do not match, it may lead to a confusion like this. I certainly do not want to do a full "introduction to shell" in our documentation, but if adding a short sentence or two helps to avoid confusion like this, I do not strongly object to it. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html