git-bulk - Man Page

Run git commands on multiple repositories

Synopsis

git bulk [-g] ([-a]|[-w <ws-name>]) <git command>
git bulk --addworkspace <ws-name> <ws-root-directory> (--from <URL or file>)
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.

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 <ws-name> <ws-root-directory> (--from <URL or file&rt;gt;)
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 diretly 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>

Referenced By

git-extras(1).

December 2019 Git Extras