Skip to content

ZeroErrors/git-pull-all

Repository files navigation

git-pull-all

A CLI tool that recursively finds and updates all git repositories in a directory.

Install

dotnet tool install -g git-pull-all
dotnet tool install -g git-fetch-all

Usage

# Pull all repos under the current directory
git pull-all

# Pull all repos under a specific path
git pull-all ~/github

# Only fetch, don't merge
git fetch-all

# Run sequentially for predictable output ordering
git pull-all --sequential

# Limit parallelism
git pull-all -j 4

# Pass extra arguments to git
git fetch-all -- --all --prune

How it works

  • Recursively searches for directories containing .git
  • Detects regular repos, linked worktrees, and bare repo worktree layouts (e.g. from git-wt)
  • git-pull-all runs git pull in each repo (respects your git config like pull.rebase)
  • git-fetch-all runs git fetch in each repo
  • Parallel by default for speed, --sequential for deterministic ordering
  • Worktrees sharing the same repository only fetch once

Options

Option Description
path Root directory to search (default: current directory)
-s, --sequential Run sequentially for predictable ordering
-j, --max-parallelism Maximum concurrent operations (default: CPU count)
--color Force colored output even when piped
--no-color Disable colored output
-- <args> Extra arguments to pass to the git command

About

CLI tool to recursively pull or fetch all git repositories in a directory

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors