diff options
| author | Junio C Hamano <gitster@pobox.com> | 2012-09-14 21:20:40 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2012-09-14 21:20:40 -0700 |
| commit | c336bc104c47cc9c2f7caf6bce468fe00a8f6850 (patch) | |
| tree | 501143681bb20b9d4642e5029a77bec2d321482c /Documentation/gitcli.txt | |
| parent | e70d1632bdaf25a9ee528e78133cab319083eade (diff) | |
| parent | bafc478f1618534fcb85bedc0fa224bd2d462441 (diff) | |
| download | git-c336bc104c47cc9c2f7caf6bce468fe00a8f6850.tar.xz | |
Sync with 1.7.11.7
Diffstat (limited to 'Documentation/gitcli.txt')
| -rw-r--r-- | Documentation/gitcli.txt | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/Documentation/gitcli.txt b/Documentation/gitcli.txt index 3e72a5d68e..f6ba90c2da 100644 --- a/Documentation/gitcli.txt +++ b/Documentation/gitcli.txt @@ -37,11 +37,28 @@ arguments. Here are the rules: file called HEAD in your work tree, `git diff HEAD` is ambiguous, and you have to say either `git diff HEAD --` or `git diff -- HEAD` to disambiguate. - ++ When writing a script that is expected to handle random user-input, it is a good practice to make it explicit which arguments are which by placing disambiguating `--` at appropriate places. + * Many commands allow wildcards in paths, but you need to protect + them from getting globbed by the shell. These two mean different + things: ++ +-------------------------------- +$ git checkout -- *.c +$ git checkout -- \*.c +-------------------------------- ++ +The former lets your shell expand the fileglob, and you are asking +the dot-C files in your working tree to be overwritten with the version +in the index. The latter passes the `*.c` to Git, and you are asking +the paths in the index that match the pattern to be checked out to your +working tree. After running `git add hello.c; rm hello.c`, you will _not_ +see `hello.c` in your working tree with the former, but with the latter +you will. + Here are the rules regarding the "flags" that you should follow when you are scripting git: |
