git-sync-all
git-sync-all: CLI tool that syncs all Git repositories in a directory tree (tags, commit, pull, push). Overview, quick start and links to the detail pages.
git-sync-all
Video tutorial
The video demonstrates the installation, first sync and key features of git-sync-all in under 4 minutes.
Overview
git-sync-all is a Bash tool that synchronizes all Git repositories in a directory tree one after another: fetch tags, commit changes, pull from the remote and push local commits. One command replaces the manual round through every repository.
Built for developers who work on several machines and want all projects at the same state with a single call.
The tool also commits untracked files with
git add -Aand pushes without asking once you use--yes. Start new setups with--dry-runand read the Security page.
What happens per repository
- Fetch tags with
git fetch --tags --prune-tags - Detect changes in the working tree and commit them after a prompt (
git add -A) - Pull new commits from the upstream (rebase or merge)
- Push local commits
There is no force push, no branch switch and no tag push. If a pull fails, the tool aborts the rebase or merge itself.
Features
- Repository discovery down to a configurable depth, include and exclude filters via glob
- Dry run, status table and interactive prompts with a conflict menu
- Conflict strategies
skip,stashandcommitfor auto mode - Repository inventory
repos.ymlwith--verifyand--issues - Lock file against parallel runs
- XDG-style config file, Windows installer, git alias
git check
Quick start
git clone https://github.com/markus-michalski/git-sync-all.git
cd git-sync-all
make link PREFIX=$HOME/.local
git-sync-all --init-config
git-sync-all --dry-run
git-sync-all
Documentation
| Page | Content |
|---|---|
| Installation | Requirements, Linux, macOS, Windows, alias, uninstall |
| Configuration | All variables, placeholders, precedence |
| Usage | Options, examples, exit codes, cron |
| Sync workflow | What happens per repository, conflicts, stash |
| Inventory | repos.yml, --verify, --issues |
| Security | Auto-commit, deletion, config as script |
| Troubleshooting | Messages, causes, solutions |
| Technical details | Modules, flow, tests |
License and links
Licensed under the MIT License.
| Resource | Link |
|---|---|
| GitHub repository | https://github.com/markus-michalski/git-sync-all |
| Releases | https://github.com/markus-michalski/git-sync-all/releases |
| Issues / bug reports | https://github.com/markus-michalski/git-sync-all/issues |
