One object pool
One bare Git repository collects objects from all registered remotes. Identical objects share storage.
Agents and editors clone the same repositories for every task. git-dedup is a Git wrapper whose clones, forks, and worktree submodules share one local object pool, so each new checkout reuses the history already on disk.
# Populate the object pool in ~/.git-dedup.
git-dedup clone https://github.com/you/project.git project
# Another checkout borrows objects from the same pool.
git-dedup clone https://github.com/you/project.git project-review
cd project-review
# All normal Git commands work in the checkout.
git status
git diff
git log --onelineIn one typical local setup spanning 117 checkouts (94 distinct Git object databases, with linked worktrees counted once), git-dedup uses 11.1 GB for Git objects versus an estimated 35.5 GB without sharing, saving about 24.4 GB (69%).
TypeScript · Node.js 22+ · macOS and Linux
THE IDEA
Development often means several copies of the same repository: separate tasks, agents, experiments, and worktrees. git-dedup automatically puts reusable Git objects in a local store and keeps the consumer repositories connected to it through Git alternates. It manages remote updates and reference paths for you.
One bare Git repository collects objects from all registered remotes. Identical objects share storage.
Clones remain ordinary repositories with their real origin URL. They borrow objects through Git alternates.
Commands outside the supported path run through Git. Your existing Git workflow stays available.
BUILT ON GIT
Try git-dedup on a remote repository, inspect the resulting origin, and compare the object files in the clone and store.
Read the getting started guide →Working copies with shared object storage.