Re: checkout extra files
Nguyen Thai Ngoc Duy <pclouds@gmail.com> writes:
Show 7 quoted lines
>> 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: