---
name: "git-bulk"
section: "1"
platform: "linux"
package: "git-extras"
version: "7.3.0-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/git-bulk"
---

# git-bulk(1)

Run git commands on multiple repositories

## 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*\>
