# Command-Line Help for `shipit`
This document contains the help content for the `shipit` command-line program.
**Command Overview:**
* [`shipit`↴](#shipit)
* [`shipit b2b`↴](#shipit-b2b)
* [`shipit b2b plan`↴](#shipit-b2b-plan)
* [`shipit b2b apply`↴](#shipit-b2b-apply)
* [`shipit b2t`↴](#shipit-b2t)
* [`shipit b2t plan`↴](#shipit-b2t-plan)
* [`shipit b2t apply`↴](#shipit-b2t-apply)
* [`shipit init`↴](#shipit-init)
## `shipit`
**Usage:** `shipit [OPTIONS] [COMMAND]`
###### **Subcommands:**
* `b2b` — Open or apply a merge/pull request (alias: `t2b`)
* `b2t` — Plan or apply an annotated tag on a branch
* `init` — Write the default config to the platform config directory (overwrites existing config)
###### **Options:**
* `-v`, `--verbose` — Increase log verbosity (`-v` for info, `-vv` for debug)
## `shipit b2b`
Open or apply a merge/pull request
**Usage:** `shipit b2b <SUBCOMMAND>`
**Alias:** `t2b`
###### **Subcommands:**
* `plan` — Generate a plan file for a merge/pull request without creating it
* `apply` — Open a merge/pull request using a plan file from `.shipit/plans/`
## `shipit b2b plan`
Generate a plan file for a merge/pull request without creating it
**Usage:** `shipit b2b plan [OPTIONS] <SOURCE> <TARGET>`
###### **Arguments:**
* `<SOURCE>` — Source branch to open the merge/pull request from
* `<TARGET>` — Target branch to merge into
###### **Options:**
* `-c`, `--conventional-commits` — Categorize commits by conventional commit type and structure the description accordingly
* `--dir <DIR>` — Path to the git repository (default: present working directory)
* `--remote <REMOTE>` — Name of the git remote to use
Default value: `origin`
* `--title <TITLE>` — Title to use for the merge/pull request (default: `Release Candidate vX.Y.Z`)
* `--description <DESCRIPTION>` — Description to use for the merge/pull request; when combined with `--title`, skips commit discovery entirely
* `--only-merges` — Only include merge commits in the discovered commits
* `--no-sign` — Do not append the 'generated by Shipit' line to the created description
* `-y`, `--yes` — Automatically approve all shipit command prompts
* `--yaml` — Emit the plan as YAML to stdout (useful for piping to `yq`; adds a `plan_file` field)
* `--allow-dirty` — Continue even if the working directory has uncommitted changes
## `shipit b2b apply`
Open a merge/pull request using a plan file from `.shipit/plans/`
**Usage:** `shipit b2b apply [OPTIONS] <PLAN>`
###### **Arguments:**
* `<PLAN>` — Name of the plan file in `.shipit/plans/` to apply
###### **Options:**
* `--dir <DIR>` — Path to the git repository (default: present working directory)
* `--remote <REMOTE>` — Name of the git remote to use
Default value: `origin`
* `--allow-dirty` — Continue even if the working directory has uncommitted changes
* `-y`, `--yes` — Automatically approve all shipit command prompts
## `shipit b2t`
Plan or apply an annotated tag on a branch
**Usage:** `shipit b2t <SUBCOMMAND>`
###### **Subcommands:**
* `plan` — Generate a plan file for a tag without creating it
* `apply` — Create and push a tag using a plan file from `.shipit/plans/`
## `shipit b2t plan`
Generate a plan file for a tag without creating it
**Usage:** `shipit b2t plan [OPTIONS] <BRANCH> [TAG]`
###### **Arguments:**
* `<BRANCH>` — Branch to create the tag on
* `[TAG]` — Name of the tag to create (default: next semantic version derived from commits)
###### **Options:**
* `-c`, `--conventional-commits` — Categorize commits by conventional commit type and structure the notes accordingly
* `--dir <DIR>` — Path to the git repository (default: present working directory)
* `--remote <REMOTE>` — Name of the git remote to use
Default value: `origin`
* `--description <DESCRIPTION>` — Description to use for the tag notes; skips commit discovery when provided
* `--only-merges` — Only include merge commits in the discovered commits
* `--latest-tag <LATEST_TAG>` — The most recent tag to compare against (default: most recent tag on the branch)
* `--no-sign` — Do not append the 'generated by Shipit' line to the tag notes
* `-y`, `--yes` — Automatically approve all shipit command prompts
* `--yaml` — Emit the plan as YAML to stdout (useful for piping to `yq`; adds a `plan_file` field)
* `--allow-dirty` — Continue even if the working directory has uncommitted changes
## `shipit b2t apply`
Create and push a tag using a plan file from `.shipit/plans/`
**Usage:** `shipit b2t apply [OPTIONS] <PLAN>`
###### **Arguments:**
* `<PLAN>` — Name of the plan file in `.shipit/plans/` to apply
###### **Options:**
* `--dir <DIR>` — Path to the git repository (default: present working directory)
* `--remote <REMOTE>` — Name of the git remote to use
Default value: `origin`
* `--allow-dirty` — Continue even if the working directory has uncommitted changes
* `-y`, `--yes` — Automatically approve all shipit command prompts
## `shipit init`
Write the default config to the platform config directory (overwrites existing config)
**Usage:** `shipit init [OPTIONS]`
###### **Options:**
* `--dir <DIR>` — Directory to write the config file to (default: present working directory)
* `--platform-token <PLATFORM_TOKEN>` — Platform personal access token
* `--platform-domain <PLATFORM_DOMAIN>` — Platform domain (e.g. `github.com`, `gitlab.com`)
<hr/>
<small><i>
This document was generated automatically by
<a href="https://crates.io/crates/clap-markdown"><code>clap-markdown</code></a>.
</i></small>