clap/examples/git.md
Ed Page 65b5b5f7bf fix(help): Remove name/version/author from help
This is to help shorten it and polish it by removing redundant
information.

This is a part of #4132
2022-08-31 15:06:15 -05:00

2 KiB

Git is an example of several common subcommand patterns.

Help:

$ git
? failed
A fictional versioning CLI

Usage:
    git[EXE] <COMMAND>

Commands:
    clone    Clones repos
    push     pushes things
    add      adds things
    stash    
    help     Print this message or the help of the given subcommand(s)

Options:
    -h, --help    Print help information

$ git help
A fictional versioning CLI

Usage:
    git[EXE] <COMMAND>

Commands:
    clone    Clones repos
    push     pushes things
    add      adds things
    stash    
    help     Print this message or the help of the given subcommand(s)

Options:
    -h, --help    Print help information

$ git help add
adds things

Usage:
    git[EXE] add <PATH>...

Arguments:
    <PATH>...    Stuff to add

Options:
    -h, --help    Print help information

A basic argument:

$ git add
? failed
adds things

Usage:
    git[EXE] add <PATH>...

Arguments:
    <PATH>...    Stuff to add

Options:
    -h, --help    Print help information

$ git add Cargo.toml Cargo.lock
Adding ["Cargo.toml", "Cargo.lock"]

Default subcommand:

$ git stash -h
Usage:
    git[EXE] stash [OPTIONS]
    git[EXE] stash <COMMAND>

Commands:
    push     
    pop      
    apply    
    help     Print this message or the help of the given subcommand(s)

Options:
    -m, --message <MESSAGE>    
    -h, --help                 Print help information

$ git stash push -h
Usage:
    git[EXE] stash push [OPTIONS]

Options:
    -m, --message <MESSAGE>    
    -h, --help                 Print help information

$ git stash pop -h
Usage:
    git[EXE] stash pop [STASH]

Arguments:
    [STASH]    

Options:
    -h, --help    Print help information

$ git stash -m "Prototype"
Pushing Some("Prototype")

$ git stash pop
Popping None

$ git stash push -m "Prototype"
Pushing Some("Prototype")

$ git stash pop
Popping None

External subcommands:

$ git custom-tool arg1 --foo bar
Calling out to "custom-tool" with ["arg1", "--foo", "bar"]