GIT-BULK(1)

NAME
git-bulk - Run git commands on multiple repositories

SYNOPSIS
git-bulk [-g] [--no-follow-symlinks] [--no-follow-hidden] ([-a]|[-w
git-bulk --addworkspace
git-bulk --removeworkspace <ws-name>
git-bulk --addcurrent <ws-name>
git-bulk --purge
git-bulk --listall

DESCRIPTION
git bulk adds convenient support for operations that you want to execute on multiple git repositories.

○   simply register workspaces that contain multiple git repos in their directory structure

○   run any git command on the repositories of the registered workspaces in one command to git bulk

○   use the "guarded mode" to check on each execution

OPTIONS
-a

Run a git command on all workspaces and their repositories.

-g

Ask the user for confirmation on every execution.

--no-follow-symlinks

Do not traverse symbolic links under the workspace when searching for git repositories.

--no-follow-hidden

Do not traverse hidden (dotted) directories under the workspace when searching for git repositories.

-w <ws-name>

Run the git command on the specified workspace. The workspace must be registered.

<git command>

Any git Command you wish to execute on the repositories.

--addworkspace

Register a workspace for bulk operations. All repositories in the directories below <ws-root-directory> get registered under this workspace with the name <ws-name>. <ws-root-directory> must be absolute path.

With option '--from' the URL to a single repository or a file containing multiple URLs can be added and they will be cloned directly into the workspace. Suitable for the initial setup of a multi-repo project.

--removeworkspace <ws-name>

Remove the workspace with the logical name <ws-name>.

--addcurrent <ws-name>

Adds the current directory as workspace to git bulk operations. The workspace is referenced with its logical name <ws-name>.

git bulk --purge

Removes all defined repository locations.

git bulk --listall

List all registered repositories.

EXAMPLES
Register a workspace so that git bulk knows about it using an absolute path:
$ git bulk --addworkspace personal ~/workspaces/personal
Or register a workspace using an environment variable pointing to an absolute path:
$ git bulk --addworkspace personal '$PERSONAL_WORKSPACE'
Use option --from in order to directly clone a repository or multiple repositories
$ git bulk --addworkspace personal ~/workspaces/personal --from https://github.com/tj/git-extras.git
$ git bulk --addworkspace personal ~/workspaces/personal --from ~/repositories.txt
repositories.txt
----------------------------------
https://host-of-git/repo-1.git
https://host-of-git/repo-2.git
https://host-of-git/repo-3.git
Register the current directory as a workspace to git bulk:
$ git bulk --addcurrent personal
List all registered workspaces:
$ git bulk --listall
Run a git command on the repositories of the current workspace:
$ git bulk fetch
Run a git command on the specified workspace and its repositories:
$ git bulk -w personal fetch
Run a git command but ask the user for confirmation on every execution (guarded mode):
$ git bulk -g fetch
Remove a registered workspace:
$ git bulk --removeworkspace personal
Remove all registered workspaces:
$ git bulk --purge

FILES

○   .gitconfig: Store the git-bulk registered workspaces under the bulkworkspaces key.

AUTHOR
Written by Niklas Schlimm <ns103@hotmail.de>

REPORTING BUGS
<https://github.com/nschlimm/git-bulk>

SEE ALSO
<https://github.com/tj/git-extras>