Skip to content

git-maintenance Quick Reference

Background housekeeping for long-lived .git directories on CI runners.

Enable

git maintenance start                       # register hourly/daily/weekly
git maintenance run --task=gc --quiet       # run gc now
git maintenance run --task=commit-graph --quiet
git maintenance run --task=pack-everything --quiet

Prefetch (monorepo CI optimisation)

git config remote.origin.maintenance true
git config fetch.writeCommitGraph false
git maintenance run --task=prefetch --quiet

Tighten for ephemeral runners

git config gc.pruneExpire "24.hours.ago"

Inspect / debug

git maintenance run --task=gc --verbose
test -f .git/maintenance.lock && echo "running"   # check lock

Disable

git maintenance stop                          # unregister schedule