- NAME
- ABSTRACT
- DESCRIPTION
- Benefits
  - GLOBAL OPTIONS
  - SUBCOMMANDS
    - branch
    - clean
    - clone
    - commit
    - fetch
    - init
    - pull
    - push
    - status
    - version
    - help
    - _meta
    - _meta completion
    - _meta completion generate
    - _meta pod
    - _meta pod generate

# NAME

subrepo - Git Submodule Alternative

# ABSTRACT

# DESCRIPTION

This is just an example for generating completion for an existing command, https://github.com/ingydotnet/git-subrepo

This git command "clones" an external git repo into a subdirectory of your repo. Later on, upstream changes can be pulled in, and local changes can be pushed back. Simple.

# Benefits

This command is an improvement from `git-submodule` and `git-subtree`; two other git commands with similar goals, but various problems.

## GLOBAL OPTIONS

        --help -h    Show command help (flag)

## SUBCOMMANDS

### branch

        subrepo  branch [options] [<subrepo>]

Create a branch with local subrepo commits since last pull.

Options:

        --all    All subrepos (flag)

Parameters:

        subrepo    Subrepo

### clean

        subrepo  clean [options] [<subrepo>]

Remove artifacts created by `fetch` and `branch` commands.

Options:

        --all    All subrepos (flag)

Parameters:

        subrepo    Subrepo

### clone

        subrepo  clone [options] <repository> [<subdir>]

Add a repository as a subrepo in a subdir of your repository.

Options:

        --branch -b    Upstream branch
        --force -f     reclone (completely replace) an existing subdir. (flag)

Parameters:

        repository  *
        subdir

### commit

        subrepo  commit <subrepo> [<subreporef>]

Add subrepo branch to current history as a single commit.

Parameters:

        subrepo     *  Subrepo
        subreporef     Subrepo ref

### fetch

        subrepo  fetch [options] [<subrepo>]

Fetch the remote/upstream content for a subrepo.

Options:

        --all    All subrepos (flag)

Parameters:

        subrepo    Subrepo

### init

        subrepo  init [options] <subdir>

Turn an existing subdirectory into a subrepo.

Options:

        --remote -r    Specify remote repository
        --branch -b    Upstream branch

Parameters:

        subdir  *

### pull

        subrepo  pull [options] [<subrepo>]

Update the subrepo subdir with the latest upstream changes.

Options:

        --all          All subrepos (flag)
        --branch -b    Upstream branch
        --remote -r    Specify remote repository
        --update -u    update

Parameters:

        subrepo    Subrepo

### push

        subrepo  push [options] [<subrepo>]

Push a properly merged subrepo branch back upstream.

Options:

        --all          All subrepos (flag)
        --branch -b    Upstream branch
        --remote -r    Specify remote repository
        --update -u    update

Parameters:

        subrepo    Subrepo

### status

        subrepo  status [options] [<subrepo>]

Get the status of a subrepo.

Options:

        --quiet -q    Just print names

Parameters:

        subrepo    Subrepo

### version

        subrepo  version

display version information about git-subrepo

### help

        subrepo  help

Same as `git help subrepo`

### _meta

        subrepo  _meta <subcommands>

Information and utilities for this app

### _meta completion

        subrepo _meta completion <subcommands>

Shell completion functions

### _meta completion generate

        subrepo _meta completion generate [options]

Generate self completion

Options:

        --name    name of the program (optional, override name in spec)
        --zsh     for zsh (flag)
        --bash    for bash (flag)

### _meta pod

        subrepo _meta pod <subcommands>

Pod documentation

### _meta pod generate

        subrepo _meta pod generate

Generate self pod