c4git — Git for Media Production

c4git makes git viable for media production. Version-control EXR frames, DPX plates, MOV files, and any other large assets alongside your code — without a separate server, without size limits, without special hosting.

GitHub: Avalanche-io/c4git

Install

go install github.com/Avalanche-io/c4git@latest

The opportunity

Studios have wanted to use git for everything — code, configs, scripts, and the media assets they operate on. But git was designed for source code, and large binary files make repositories impractical to clone and maintain. That meant media assets lived in a separate world: on shared drives, in proprietary asset managers, outside the version control that made code manageable.

c4git changes that. It brings media assets into git.

How it works

When you git add a tracked file, c4git replaces it with a small pointer file containing the C4 ID. On checkout, c4git restores the original content from the C4 store. Git sees lightweight pointer files. You see your actual media.

# Initialize c4git — writes .gitattributes with default media patterns
c4git init

# Work normally — git sees small pointer files
git add shots/
git commit -m "add shot composites"

# Content lives in the C4 store, not in git history

The c4git init command configures .gitattributes with default patterns for common media types (.exr, .dpx, .mov, etc.) and sets up the git filter driver. To track additional file types, add entries to .gitattributes with the filter=c4 attribute.

What this enables

Complementary to git

c4git doesn’t replace git — it extends it. Your source code stays in git as usual. Large media assets get the benefits of content-addressed storage without the repository bloat. The result is one workflow for everything: code and content, versioned together.