A fast CLI tool for keeping multiple git repositories up to date. Updates repositories by stashing local changes, fetching from remote, pulling the main branch, and restoring your previous state.
- Workspace mode: Update all git repositories in a directory in parallel
- Single repo mode: Update a single repository
- Safe updates: Automatically stashes uncommitted changes and restores them after update
- Branch preservation: Returns to your original branch after updating master/main
- Smart branch detection: Tries
masterfirst, falls back tomain - Progress tracking: Visual progress bars for workspace updates
- Verbosity controls: Quiet mode for CI, verbose mode for debugging
cargo install --path .# Update all repos in current directory (workspace mode)
# Automatically detected when not inside a git repository
git-daily-v2
# Update a single repository (auto-detected when inside a git repo)
cd my-project && git-daily-v2
# Verbose mode - show git commands being executed
git-daily-v2 --verbose
# Quiet mode - minimal output for scripts/CI
git-daily-v2 --quiet
# Custom timeout for slow networks (default: 30 seconds)
GIT_DAILY_TIMEOUT=60 git-daily-v2| Code | Meaning |
|---|---|
| 0 | All repositories updated successfully |
| 1 | Some repositories failed to update |
| 2 | All repositories failed to update |
For each repository, git-daily-rust:
- Detects the current branch
- Checks for uncommitted changes
- Fetches from remote with pruning
- Stashes changes (if any tracked files are modified)
- Checks out master/main branch
- Pulls latest changes (fast-forward only)
- Restores original branch
- Pops stash (if changes were stashed)
MIT