14 releases (9 stable)

Uses new Rust 2024

new 1.4.1 Feb 12, 2026
1.4.0 Feb 11, 2026
1.3.1 Jan 27, 2026
1.2.0 Dec 4, 2025
1.0.0-beta.6 Oct 31, 2025

#1319 in Filesystem

MIT license

1MB
10K SLoC

JavaScript 6K SLoC // 0.1% comments Rust 3.5K SLoC // 0.0% comments Shell 310 SLoC // 0.1% comments Just 42 SLoC // 0.2% comments

Git Wok

status-badge

Git Wok manages multiple Git repositories as one workspace, with Git submodules as the source of truth.

Use it to keep many component repos in sync for daily development, updates, and releases from a single umbrella repository.

Features

  • Workspace setup for existing umbrellas (init) or directories of repos (assemble)
  • Daily multirepo operations (status, switch, lock, update, push)
  • Repo configuration management (add, rm)
  • Release workflows across repos (tag create, tag list, tag push)
  • Selective targeting: current-branch repos (default), --all, or explicit paths
  • Per-repo skip_for controls in wok.toml for bulk commands
  • Git LFS-aware update and push behavior
  • Shell completion generation for Bash, Zsh, and Fish
  • Authentication diagnostics with test-auth

Quick Start

# Install from crates.io
cargo install git-wok

# In an existing umbrella repository with submodules
wok init

# Check workspace state
wok status

# Reconcile repos using branch state from wok.toml on "main"
wok switch -b main

# Update subrepos and commit updated submodule pointers
wok update

# Push all repos (and umbrella)
wok push --all -u

# Create and push a signed release tag in all repos
wok tag --all create v1.0.0 --sign
wok tag --all push

Documentation

Community

Dependencies

~13MB
~283K SLoC