GIT-BULK(1)

πŸ’– git-bulk β€” like, the manual, but make it make sense πŸ’–

okay bestie, sit down, hydrate, because we're about to talk about the icon of multi-repo chaos: git-bulk, straight out of Git Extras (she's fancy, she's in the GIT-BULK(1) man section, she's that girl). If you've ever had, like, seventeen repos and one dream, this is the page for you 🫢


✨ NAME ✨

git-bulk β€” run git commands on multiple repositories. yes. multiple. at once. no cap. πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

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

look at her. six whole modes. main character energy fr fr πŸ’…


🌸 DESCRIPTION 🌸

git bulk adds convenient support for operations that you want to execute on multiple git repositories. that's it, that's the vibe β€” one command, many repos, zero tears 😭

here's what she actually does for you:

  • 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. every single one. she's committed πŸ’–
  • -g β€” ask the user for confirmation on every execution. yes, every. she's just checking in on you, that's love πŸ™ˆ
  • --no-follow-symlinks β€” do not traverse symbolic links under the workspace when she's out here searching for git repositories. hands off the symlinks bestie βœ‹
  • --no-follow-hidden β€” do not traverse hidden (dotted) directories under the workspace when searching for git repositories. the .-girlies get left out, sorry 🫣
  • -w WS-NAME β€” run the git command on the specified workspace. the workspace must be registered. no registration, no service πŸ’…
  • GIT-COMMAND β€” any git Command you wish to execute on the repositories. literally any. go feral ✨
  • --addworkspace WS-NAME WS-ROOT-DIRECTORY (--from URL-OR-FILE) β€” 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, she does not do relative, she's not playing games. 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 β€” honestly iconic for fresh starts 🌈
  • --removeworkspace WS-NAME β€” remove the workspace with the logical name WS-NAME. bye bestie πŸ’€
  • --addcurrent WS-NAME β€” adds the current directory as workspace to git bulk operations. the workspace is referenced with its logical name WS-NAME. effortless. lazy-girl win πŸ“
  • git bulk --purge β€” removes all defined repository locations. all of them. nuclear. 🚨
  • git bulk --listall β€” list all registered repositories. a little scroll, a little flex πŸ“œ

πŸ‘‘ EXAMPLES πŸ‘‘

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

🧚 FILES 🧚

  • .gitconfig β€” store the git-bulk registered workspaces under the bulkworkspaces key. that's where she keeps her little secrets πŸ“

πŸ’œ AUTHOR πŸ’œ

Written by Niklas Schlimm <ns103@hotmail.de>. thank you for your service, legend 🫑


😭 REPORTING BUGS 😭

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

found a bug? tell her directly, she wants to know, be nice about it πŸ’–


🌈 SEE ALSO 🌈

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


and that's the whole page, bestie πŸ’– go forth, bulk your repos, be the main character of your own multi-repo project ✨

this was the GIT-BULK(1) manual page from Git Extras, dated May 2026. mwah. periodt. πŸ’…

πŸ“¦ where this page comes from