git-bulk - Man Page
Run git commands on multiple repositories
Examples (TL;DR)
- Register the current directory as a workspace:
git bulk --addcurrent workspace_name
- Register a workspace for bulk operations:
git bulk --addworkspace workspace_name /absolute/path/to/repository
- Clone a repository inside a specific directory, then register the repository as a workspace:
git bulk --addworkspace workspace_name /absolute/path/to/parent_directory --from remote_repository_location
- Clone repositories from a newline-separated list of remote locations, then register them as workspaces:
git bulk --addworkspace workspace_name /path/to/root/directory --from /path/to/file
- List all registered workspaces:
git bulk --listall
- Run a Git command on the repositories of the current workspace:
git bulk command command_arguments
- Remove a specific workspace:
git bulk --removeworkspace workspace_name
- Remove all workspaces:
git bulk --purge
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.
- 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 <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 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>