Nguyen Thai Ngoc Duy <pclouds@xxxxxxxxx> writes: >> 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. Perhaps like this? Documentation/git-checkout.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git i/Documentation/git-checkout.txt w/Documentation/git-checkout.txt index 63a2516..e7272b6 100644 --- i/Documentation/git-checkout.txt +++ w/Documentation/git-checkout.txt @@ -360,20 +360,32 @@ mistake, and gets it back from the index. $ git checkout master <1> $ git checkout master~2 Makefile <2> $ rm -f hello.c $ git checkout hello.c <3> ------------ + <1> switch branch <2> take a file out of another commit <3> restore hello.c from the index + +If you want to check out _all_ C source files out of the index, +you can say ++ +------------ +$ git checkout -- '*.c' +------------ ++ +Note the quotes around '*.c'. 'hello.c' will also be checked +out, even though it is no longer in the working tree, because +the pathspec is used to match entries in the index (not in the +working tree by your shell). ++ If you have an unfortunate branch that is named `hello.c`, this step would be confused as an instruction to switch to that branch. You should instead write: + ------------ $ git checkout -- hello.c ------------ . After working in the wrong branch, switching to the correct branch would be done using: -- 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