Skip to content

Instantly share code, notes, and snippets.

@TheCatPlusPlus
Created March 11, 2014 19:16
Show Gist options
  • Save TheCatPlusPlus/42b976629ce19b3e3c41 to your computer and use it in GitHub Desktop.
Save TheCatPlusPlus/42b976629ce19b3e3c41 to your computer and use it in GitHub Desktop.
> .\multitool repo -h
Usage:
multitool repo (-h | --help)
multitool repo init [--remote=REMOTE] LOCAL
multitool repo init-remote REMOTE
multitool repo clone [-u | --update] [-c | --commit] REMOTE [LOCAL]
multitool repo update [-c | --commit] LOCAL
Repository management tools.
Available subcommands that don't require a local repository:
* init:
Augmented `git init`. Creates a repository and makes sure it has
correct settings. Aborts if local directory already exists. Can
create remote GitLab repository if --remote is given.
* clone:
Clones a GitLab repository and makes sure local clone has correct
settings. If --update is given, runs `repo update` on the local
repo after cloning.
Available subcommands that require a local repository:
* init-remote:
Creates a GitLab repository and adds it as origin. Only adds the
git remote if GitLab repo already exists.
* update:
Turns a local Git repo into a multitool-managed Git repo, or updates
an existing one (brings submodules up-to-date etc). Does not commit
the changes automatically unless --commit is given. Updates
local gitconfig, but doesn't change remotes.
Note: GitLab names are in [namespace/]repo format. If namespace is not given,
the project is created in the user namespace.
Things done during init:
* GitLab project is created
* Local repo is created
* Local gitconfig is updated with user.name/email and remotes
* Multitool config is created in the repo
* Deploy key is generated and added to the project
* Submodules to common stuff are added (Capistrano, Vagrant, etc)
Some of these things are also done during update (submodules, config
updates, etc).
Arguments:
REMOTE A GitLab repo name.
LOCAL A local directory.
Options:
-h --help Show this screen.
-c --commit Commit multitool-related changes immediately. Implies a push, if remote is set.
-u --update Also run update on the local repository.
--remote=REMOTE Name for the remote repository.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment