The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

got - A tool to make it easier to manage multiple code repositories using different VCSen

VERSION

version 1.22

SYNOPSIS

cd some/proj/in/a/vcs

got add
# answer prompts for various information
# or run with '-D' to take all defaults

# show managed repositories
got list
got ls

# run a command in selected repositories
got do --tag perl --command "ls t/"

# show managed repositories sorted by path (default = sort by name)
got ls -p

# remove repo #1 from the list
got remove 1

# remove repo named 'bar' from the list
got remove bar

# remove all repos tagged 'foo' without confirmation prompts
got rm -f -t foo

# remove repo #3 without confirmation prompts and be noisy about it
got rm -f -v 3

# show status (up-to-date, dirty, etc.) for all repos
got status

# show status for repo #3
got st 3

# fetch upstream for all repositories
got fetch

# fetch upstream for repo #3
got fetch 3

# update all repos with configured remotes
got update

# update repo named 'bar'
got up bar

# Note: if a repo is in the list but doesn't have a local checkout, 'got
# update' will create directories as needed and do the initial check out.

# Run the 'git gc' command to garbage collect in git repos
got gc

# spawn a subshell with working directory set to 'path' of repo #1
got chdir 1

# spawn a subshell with working directory set to 'path' of repo foo
got cd foo

# or use 'tmux' subcommand to open a new tmux window instead
got tmux 1
got tmux foo
# N.b., 'tmux' will reuse an existing window if one is open

# fork a github repo, add it to your list of repos, and check it out in
# the current working directory
got fork https://github.com/somebodies/repo_name

# note: the default path to a repo added via 'fork' is a directory
# named 'repo_name' in the current working directory

# if you just want to fork without checking out a working copy:
got fork --noclone https://github.com/somebodies/repo_name

# finally, please note that you need a C<~/.github-identity> file set up
# with your access token or your username and password in the following key-value
# format:
user username
pass password

# *OR*
access_token token

# note that if you specify both, the access_token value will be used

# show version of got
got version

DESCRIPTION

got is a script to make it easier to manage all the version controlled repositories you have on all the computers you use. It can operate on all, some, or just one repo at a time, to both check the status of the repo (up to date, pending changes, dirty, etc.) and sync it with any upstream master.

got also supports forking a GitHub repo and adding it to the list of managed repositories.

OPTIONS

In addition to the subcommand-specific options illustrated in the SYNOPSIS, all the subcommands accept the following options:

COLOR SCHEMES

Color scheme libraries should extend App::GitGot::Outputter and need to define four required attributes: color_error, color_warning, color_major_change, and color_minor_change. Each attribute should be a read-only of type 'Str' with a default value that corresponds to a valid Term::ANSIColor color string.

SEE ALSO/CREDITS

LIMITATIONS

Currently git is the only supported VCS.

CONTRIBUTORS

AUTHOR

John SJ Anderson genehack@genehack.org

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by John SJ Anderson.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.