tj.git-extras/man/git-bulk.1
2026-03-23 23:21:26 -07:00

130 lines
4 KiB
Groff

.\" generated with Ronn-NG/v0.10.1
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
.TH "GIT\-BULK" "1" "March 2026" "" "Git Extras"
.SH "NAME"
\fBgit\-bulk\fR \- Run git commands on multiple repositories
.SH "SYNOPSIS"
.nf
git\-bulk [\-q|\-\-quiet] [\-g] [\-\-no\-follow\-symlinks] [\-\-no\-follow\-hidden] ([\-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
.fi
.SH "DESCRIPTION"
git bulk adds convenient support for operations that you want to execute on multiple git repositories\.
.IP "\(bu" 4
simply register workspaces that contain multiple git repos in their directory structure
.IP "\(bu" 4
run any git command on the repositories of the registered workspaces in one command to \fBgit bulk\fR
.IP "\(bu" 4
use the "guarded mode" to check on each execution
.IP "" 0
.SH "OPTIONS"
\-a
.P
Run a git command on all workspaces and their repositories\.
.P
\-g
.P
Ask the user for confirmation on every execution\.
.P
\-\-no\-follow\-symlinks
.P
Do not traverse symbolic links under the workspace when searching for git repositories\.
.P
\-\-no\-follow\-hidden
.P
Do not traverse hidden (dotted) directories under the workspace when searching for git repositories\.
.P
\-w WS\-NAME
.P
Run the git command on the specified workspace\. The workspace must be registered\.
.P
GIT\-COMMAND
.P
Any git Command you wish to execute on the repositories\.
.P
\-\-addworkspace WS\-NAME WS\-ROOT\-DIRECTORY (\-\-from URL\-OR\-FILE)
.P
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 an absolute path\.
.P
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\.
.P
\-\-removeworkspace WS\-NAME
.P
Remove the workspace with the logical name WS\-NAME\.
.P
\-\-addcurrent WS\-NAME
.P
Adds the current directory as workspace to git bulk operations\. The workspace is referenced with its logical name WS\-NAME\.
.P
git bulk \-\-purge
.P
Removes all defined repository locations\.
.P
git bulk \-\-listall
.P
List all registered repositories\.
.SH "EXAMPLES"
.nf
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
.fi
.SH "FILES"
.IP "\(bu" 4
\fB\.gitconfig\fR: Store the \fBgit\-bulk\fR registered workspaces under the \fBbulkworkspaces\fR key\.
.IP "" 0
.SH "AUTHOR"
Written by Niklas Schlimm <\fIns103@hotmail\.de\fR>
.SH "REPORTING BUGS"
<https://github\.com/nschlimm/git\-bulk>
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>