Scroll to navigation

GIT-BULK(1) Git Extras GIT-BULK(1)

NAME

git-bulk - Run git commands on multiple repositories

SYNOPSIS

git bulk [-g] ([-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.

-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:
$ git bulk --addworkspace personal ~/workspaces/personal
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

AUTHOR

Written by Niklas Schlimm <ns103@hotmail.de>

REPORTING BUGS

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

SEE ALSO

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

November 2023