Skip to content

torrinworx/gitblocks

Repository files navigation

GitBlocks

Version control lets you track changes, keep history, and collaborate safely. GitBlocks brings Git-backed datablock version control to Blender in a way that fits how Blender projects actually work.

Control the history and versioning of your .blend projects, see who changed what and when, revert changes, check out older versions, and merge or rebase updates, all from the Blender UI.

How does it work?

Other Blender version control systems rely on storing full .blend copies or recording user inputs. Those methods are bulky, fragile, and make it hard to understand what actually changed.

GitBlocks uses Blender's datablock system. It serializes individual datablocks into JSON files, stores them in a Git repo, and deserializes them back into Blender when you check out a previous commit or reopen a project.

This runs alongside Blender's autosave without interfering with it, so you can keep autosave on and still get clean, reviewable history.

Screencast.from.2026-03-23.23-57-34_under10mb.mp4

Features

  • Datablock-based diffs written as readable files.
  • Stage or unstage individual changes or grouped updates.
  • Commit from inside Blender with clear blockers when something is wrong.
  • Check out older commits, switch branches, or create branches from commits.
  • Merge and rebase with conflict resolution tools.

Quick Start

  1. Save your .blend file to a folder that will become the project root.
  2. Open the GitBlocks panel in the 3D View sidebar.
  3. Click Init Repository to initialize a Git/GitBlocks repo.
  4. Make Blender changes; GitBlocks will write datablocks automatically.
  5. Stage individual changes or groups from the panel.
  6. Commit with a message.
  7. Use Checkout Commit for a detached preview, or Checkout Branch to return to a branch.

Install

  1. Download the GitBlocks add-on (zip or folder).
  2. In Blender: Edit > Preferences > Add-ons > Install...
  3. Enable GitBlocks.
  4. In the add-on preferences, click Install Dependencies.

Blender test harness

The local test harness still honors GITBLOCKS_BLENDER_BIN as the strongest direct override. If you want Blender to be downloaded into a cache instead, set GITBLOCKS_BLENDER_CACHE_DIR and choose either a single version or a version matrix. Unsupported Blender selections fail fast before the matrix starts, and the supported matrix is defined in tests/blender_versions.py as SUPPORTED_BLENDER_VERSIONS:

  • python3 test.py --blender-version <one of SUPPORTED_BLENDER_VERSIONS>
  • python3 test.py --blender-versions "$(python3 -c 'from tests.blender_versions import SUPPORTED_BLENDER_VERSIONS; print(",".join(SUPPORTED_BLENDER_VERSIONS))')"
  • python3 test.py --test commit_preflight

Blender archives are pulled from the official release archive at https://download.blender.org/release/. Single-version selectors can also come from GITBLOCKS_BLENDER_VERSION, and matrix selectors can come from GITBLOCKS_BLENDER_VERSIONS. The single-test shorthand can also come from GITBLOCKS_TEST_FILTER=commit_preflight.

About

A version control system for Blender.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages