119625d8cSopenharmony_ci**This requires enabling the [`derive` feature flag][crate::_features].** 219625d8cSopenharmony_ci 319625d8cSopenharmony_ciGit is an example of several common subcommand patterns. 419625d8cSopenharmony_ci 519625d8cSopenharmony_ciHelp: 619625d8cSopenharmony_ci```console 719625d8cSopenharmony_ci$ git-derive 819625d8cSopenharmony_ci? failed 919625d8cSopenharmony_ciA fictional versioning CLI 1019625d8cSopenharmony_ci 1119625d8cSopenharmony_ciUsage: git-derive[EXE] <COMMAND> 1219625d8cSopenharmony_ci 1319625d8cSopenharmony_ciCommands: 1419625d8cSopenharmony_ci clone Clones repos 1519625d8cSopenharmony_ci diff Compare two commits 1619625d8cSopenharmony_ci push pushes things 1719625d8cSopenharmony_ci add adds things 1819625d8cSopenharmony_ci stash 1919625d8cSopenharmony_ci help Print this message or the help of the given subcommand(s) 2019625d8cSopenharmony_ci 2119625d8cSopenharmony_ciOptions: 2219625d8cSopenharmony_ci -h, --help Print help 2319625d8cSopenharmony_ci 2419625d8cSopenharmony_ci$ git-derive help 2519625d8cSopenharmony_ciA fictional versioning CLI 2619625d8cSopenharmony_ci 2719625d8cSopenharmony_ciUsage: git-derive[EXE] <COMMAND> 2819625d8cSopenharmony_ci 2919625d8cSopenharmony_ciCommands: 3019625d8cSopenharmony_ci clone Clones repos 3119625d8cSopenharmony_ci diff Compare two commits 3219625d8cSopenharmony_ci push pushes things 3319625d8cSopenharmony_ci add adds things 3419625d8cSopenharmony_ci stash 3519625d8cSopenharmony_ci help Print this message or the help of the given subcommand(s) 3619625d8cSopenharmony_ci 3719625d8cSopenharmony_ciOptions: 3819625d8cSopenharmony_ci -h, --help Print help 3919625d8cSopenharmony_ci 4019625d8cSopenharmony_ci$ git-derive help add 4119625d8cSopenharmony_ciadds things 4219625d8cSopenharmony_ci 4319625d8cSopenharmony_ciUsage: git-derive[EXE] add <PATH>... 4419625d8cSopenharmony_ci 4519625d8cSopenharmony_ciArguments: 4619625d8cSopenharmony_ci <PATH>... Stuff to add 4719625d8cSopenharmony_ci 4819625d8cSopenharmony_ciOptions: 4919625d8cSopenharmony_ci -h, --help Print help 5019625d8cSopenharmony_ci 5119625d8cSopenharmony_ci``` 5219625d8cSopenharmony_ci 5319625d8cSopenharmony_ciA basic argument: 5419625d8cSopenharmony_ci```console 5519625d8cSopenharmony_ci$ git-derive add 5619625d8cSopenharmony_ci? failed 5719625d8cSopenharmony_ciadds things 5819625d8cSopenharmony_ci 5919625d8cSopenharmony_ciUsage: git-derive[EXE] add <PATH>... 6019625d8cSopenharmony_ci 6119625d8cSopenharmony_ciArguments: 6219625d8cSopenharmony_ci <PATH>... Stuff to add 6319625d8cSopenharmony_ci 6419625d8cSopenharmony_ciOptions: 6519625d8cSopenharmony_ci -h, --help Print help 6619625d8cSopenharmony_ci 6719625d8cSopenharmony_ci$ git-derive add Cargo.toml Cargo.lock 6819625d8cSopenharmony_ciAdding ["Cargo.toml", "Cargo.lock"] 6919625d8cSopenharmony_ci 7019625d8cSopenharmony_ci``` 7119625d8cSopenharmony_ci 7219625d8cSopenharmony_ciDefault subcommand: 7319625d8cSopenharmony_ci```console 7419625d8cSopenharmony_ci$ git-derive stash -h 7519625d8cSopenharmony_ciUsage: git-derive[EXE] stash [OPTIONS] 7619625d8cSopenharmony_ci git-derive[EXE] stash <COMMAND> 7719625d8cSopenharmony_ci 7819625d8cSopenharmony_ciCommands: 7919625d8cSopenharmony_ci push 8019625d8cSopenharmony_ci pop 8119625d8cSopenharmony_ci apply 8219625d8cSopenharmony_ci help Print this message or the help of the given subcommand(s) 8319625d8cSopenharmony_ci 8419625d8cSopenharmony_ciOptions: 8519625d8cSopenharmony_ci -m, --message <MESSAGE> 8619625d8cSopenharmony_ci -h, --help Print help 8719625d8cSopenharmony_ci 8819625d8cSopenharmony_ci$ git-derive stash push -h 8919625d8cSopenharmony_ciUsage: git-derive[EXE] stash push [OPTIONS] 9019625d8cSopenharmony_ci 9119625d8cSopenharmony_ciOptions: 9219625d8cSopenharmony_ci -m, --message <MESSAGE> 9319625d8cSopenharmony_ci -h, --help Print help 9419625d8cSopenharmony_ci 9519625d8cSopenharmony_ci$ git-derive stash pop -h 9619625d8cSopenharmony_ciUsage: git-derive[EXE] stash pop [STASH] 9719625d8cSopenharmony_ci 9819625d8cSopenharmony_ciArguments: 9919625d8cSopenharmony_ci [STASH] 10019625d8cSopenharmony_ci 10119625d8cSopenharmony_ciOptions: 10219625d8cSopenharmony_ci -h, --help Print help 10319625d8cSopenharmony_ci 10419625d8cSopenharmony_ci$ git-derive stash -m "Prototype" 10519625d8cSopenharmony_ciPushing StashPushArgs { message: Some("Prototype") } 10619625d8cSopenharmony_ci 10719625d8cSopenharmony_ci$ git-derive stash pop 10819625d8cSopenharmony_ciPopping None 10919625d8cSopenharmony_ci 11019625d8cSopenharmony_ci$ git-derive stash push -m "Prototype" 11119625d8cSopenharmony_ciPushing StashPushArgs { message: Some("Prototype") } 11219625d8cSopenharmony_ci 11319625d8cSopenharmony_ci$ git-derive stash pop 11419625d8cSopenharmony_ciPopping None 11519625d8cSopenharmony_ci 11619625d8cSopenharmony_ci``` 11719625d8cSopenharmony_ci 11819625d8cSopenharmony_ciExternal subcommands: 11919625d8cSopenharmony_ci```console 12019625d8cSopenharmony_ci$ git-derive custom-tool arg1 --foo bar 12119625d8cSopenharmony_ciCalling out to "custom-tool" with ["arg1", "--foo", "bar"] 12219625d8cSopenharmony_ci 12319625d8cSopenharmony_ci``` 12419625d8cSopenharmony_ci 12519625d8cSopenharmony_ciLast argument: 12619625d8cSopenharmony_ci```console 12719625d8cSopenharmony_ci$ git-derive diff --help 12819625d8cSopenharmony_ciCompare two commits 12919625d8cSopenharmony_ci 13019625d8cSopenharmony_ciUsage: git-derive[EXE] diff [OPTIONS] [COMMIT] [COMMIT] [-- <PATH>] 13119625d8cSopenharmony_ci 13219625d8cSopenharmony_ciArguments: 13319625d8cSopenharmony_ci [COMMIT] 13419625d8cSopenharmony_ci [COMMIT] 13519625d8cSopenharmony_ci [PATH] 13619625d8cSopenharmony_ci 13719625d8cSopenharmony_ciOptions: 13819625d8cSopenharmony_ci --color[=<WHEN>] [default: auto] [possible values: always, auto, never] 13919625d8cSopenharmony_ci -h, --help Print help 14019625d8cSopenharmony_ci 14119625d8cSopenharmony_ci$ git-derive diff 14219625d8cSopenharmony_ciDiffing stage..worktree (color=auto) 14319625d8cSopenharmony_ci 14419625d8cSopenharmony_ci$ git-derive diff ./src 14519625d8cSopenharmony_ciDiffing stage..worktree ./src (color=auto) 14619625d8cSopenharmony_ci 14719625d8cSopenharmony_ci$ git-derive diff HEAD ./src 14819625d8cSopenharmony_ciDiffing HEAD..worktree ./src (color=auto) 14919625d8cSopenharmony_ci 15019625d8cSopenharmony_ci$ git-derive diff HEAD~~ -- HEAD 15119625d8cSopenharmony_ciDiffing HEAD~~..worktree HEAD (color=auto) 15219625d8cSopenharmony_ci 15319625d8cSopenharmony_ci$ git-derive diff --color 15419625d8cSopenharmony_ciDiffing stage..worktree (color=always) 15519625d8cSopenharmony_ci 15619625d8cSopenharmony_ci$ git-derive diff --color=never 15719625d8cSopenharmony_ciDiffing stage..worktree (color=never) 15819625d8cSopenharmony_ci 15919625d8cSopenharmony_ci``` 160