Spring Sale: 30% off bundles with SPRINGBUNDLE or 15% off individual products with SPRING15 — ends Apr 15

StraySparkStraySpark
ProductsFree AssetsDocsBlogGamesAbout
StraySparkStraySpark

Game Studio & UE5 Tool Developers. Building professional-grade tools for the Unreal Engine community.

Products

  • Complete Toolkit (Bundle)
  • Procedural Placement Tool
  • Cinematic Spline Tool
  • Blueprint Template Library
  • DetailForge
  • UltraWire
  • Unreal MCP Server
  • Blender MCP Server
  • Godot MCP Server

Resources

  • Free Assets
  • Documentation
  • Blog
  • Changelog
  • Roadmap
  • FAQ
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2026 StraySpark. All rights reserved.

Back to Blog
tutorial
StraySparkApril 8, 20265 min read
Version Control for UE5 Teams: Git LFS vs Perforce vs Anchorpoint in 2026 
Unreal EngineVersion ControlGitPerforceTeam Workflow

Why Version Control Is Non-Negotiable

If you're making a game without version control, you're one accidental deletion away from losing everything. Version control provides:

  • History: Every change is recorded. Roll back any mistake.
  • Collaboration: Multiple people work on the same project without conflicts.
  • Branching: Experiment freely — if it breaks, abandon the branch.
  • Backup: Your code and assets exist on a remote server, not just your hard drive.

UE5's binary asset format (.uasset, .umap) makes version control more complex than typical software projects. Choosing the right tool matters.

The Contenders

Git + Git LFS

What it is: The world's most popular VCS, extended with Large File Storage for binary assets.

How it works: Git tracks text files (code, configs) natively. Git LFS replaces binary files with pointer files and stores the actual binaries on a separate server.

Cost: Free (self-hosted or GitHub/GitLab free tiers). GitHub LFS storage: $5/month per 50GB data pack.

Perforce Helix Core

What it is: The industry-standard VCS for game studios. Epic uses it for UE5 development.

How it works: Centralized model — files live on the server, you check out files to edit them. Exclusive locks prevent binary merge conflicts.

Cost: Free for up to 5 users and 20 workspaces. Paid plans for larger teams.

Anchorpoint

What it is: A modern GUI tool built on Git, designed specifically for creative teams.

How it works: Git under the hood, but with a visual interface that handles LFS, locking, and large projects transparently.

Cost: Free for up to 3 users, paid plans for teams.

Feature Comparison

FeatureGit LFSPerforceAnchorpoint
Binary file handlingLFS extensionNativeGit LFS (wrapped)
File lockinggit lfs lockExclusive checkoutVisual locking
Merge conflicts (binary)Manual (overwrite)Prevented by locksPrevented by locks
BranchingExcellentStreams (complex)Simplified Git branches
Learning curveModerate (CLI)SteepLow (GUI)
Offline workFull (distributed)Limited (centralized)Full (distributed)
Max repo sizeDepends on LFS hostVirtually unlimitedDepends on Git host
IDE integrationVS, Rider, UE5VS, Rider, UE5Standalone app
UE5 integrationSource Control pluginSource Control pluginGit-based
Cost (5 users)Free - $25/monthFreeFree - $50/month
Cost (20 users)$100-500/month$800+/month$200-400/month

Git LFS Setup for UE5

Initial Setup

# Initialize Git repo
git init
git lfs install

# Configure LFS tracking for UE5 binary types
git lfs track "*.uasset"
git lfs track "*.umap"
git lfs track "*.uproject"
git lfs track "*.png"
git lfs track "*.jpg"
git lfs track "*.wav"
git lfs track "*.mp3"
git lfs track "*.ogg"
git lfs track "*.fbx"
git lfs track "*.blend"
git lfs track "*.psd"
git lfs track "*.tga"
git lfs track "*.exr"
git lfs track "*.hdr"
git lfs track "*.mp4"
git lfs track "*.bmp"

# Add the .gitattributes
git add .gitattributes
git commit -m "Configure Git LFS tracking for UE5 assets"

Essential .gitignore

# UE5 Generated
Binaries/
Intermediate/
Saved/
DerivedDataCache/
Build/

# IDE
.vs/
.vscode/
.idea/
*.sln
*.suo

# OS
.DS_Store
Thumbs.db

# User-specific
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.opendb

File Locking for Binaries

Enable file locking to prevent conflicts on binary files:

# Lock a file before editing
git lfs lock Content/Maps/MainLevel.umap

# See locked files
git lfs locks

# Unlock when done
git lfs unlock Content/Maps/MainLevel.umap

For teams, configure lockable file patterns:

*.umap lockable
*.uasset lockable

Branch Strategy

For UE5 Git projects:

main          ← Stable, always buildable
develop       ← Integration branch, daily merges
feature/*     ← Individual features
hotfix/*      ← Critical fixes for main
release/*     ← Release candidates

Important: Never merge branches that modify the same binary file. Use file locking to prevent this.

Perforce Setup for UE5

Server Installation

  1. Download Helix Core Server from Perforce
  2. Install and configure the server
  3. Create a depot for your project
  4. Set up user accounts

Workspace Configuration

// Perforce workspace (client spec)
Client: username_project
Root: C:\Projects\MyGame
View:
    //depot/MyGame/... //username_project/...

Typemap for UE5

Configure Perforce to handle UE5 file types correctly:

TypeMap:
    binary+l //depot/....uasset
    binary+l //depot/....umap
    binary+l //depot/....png
    binary+l //depot/....jpg
    binary+l //depot/....fbx
    text //depot/....cpp
    text //depot/....h
    text //depot/....ini
    text //depot/....cs
    text //depot/....json

The +l flag enables exclusive checkout — only one person can edit the file at a time.

UE5 Source Control Integration

  1. Open UE5 → Edit → Editor Preferences → Source Control
  2. Set Provider to "Perforce"
  3. Configure server address, workspace, and credentials
  4. Content Browser now shows check-out status icons

Stream-Based Workflow

Perforce Streams are the equivalent of Git branches:

//depot/MyGame/main        ← Mainline
//depot/MyGame/dev         ← Development (child of main)
//depot/MyGame/release     ← Release branch (child of main)

Streams handle binary merging better than Git because the server understands the relationship between branches and prevents impossible merges.

Choosing Based on Team Size

Solo Developer

Recommendation: Git + GitHub/GitLab

  • Free, simple, familiar
  • GitHub/GitLab provide backup and remote access
  • Git LFS for binary assets (free tier is usually sufficient)
  • No server to maintain

Small Team (2-5)

Recommendation: Git LFS with Anchorpoint, or Perforce free tier

  • If everyone's comfortable with CLI: Git LFS + GitHub
  • If artists need a simpler interface: Anchorpoint
  • If you want bullet-proof binary file handling: Perforce (free for 5 users)

Mid-Size Team (5-20)

Recommendation: Perforce

  • Exclusive checkout prevents binary conflicts (critical at this team size)
  • Better large-repo performance (100GB+ projects)
  • UE5 editor integration is more mature
  • Worth the cost at this scale

Large Team (20+)

Recommendation: Perforce (required)

  • Industry standard for a reason
  • Stream-based workflows handle complex branching
  • Enterprise features (replication, proxies) for distributed teams
  • All AAA studios use Perforce or a Perforce-compatible solution

Common Workflows

The Daily Workflow (Perforce)

Morning:
  1. Sync latest from server (Get Latest)
  2. Check out files you need to edit
  3. Work on your changes

End of day:
  4. Test your changes locally
  5. Submit changelist with descriptive message
  6. Resolve any conflicts with other developers

The Daily Workflow (Git)

Morning:
  1. git pull (get latest changes)
  2. git lfs lock [files you'll edit] (lock binary files)
  3. Work on your changes

End of day:
  4. git add [changed files]
  5. git commit -m "Descriptive message"
  6. git push
  7. git lfs unlock [files you're done with]

Handling Binary Merge Conflicts

Binary files (.uasset, .umap) cannot be merged. When conflicts occur:

Prevention (best): Lock files before editing. Communicate with teammates about who's working on what.

Resolution: Choose one version — either "mine" or "theirs." The other person's changes are lost and must be redone. This is why file locking is essential for binary-heavy projects.

Common Mistakes

Not using LFS for binary files: Storing large binary files in regular Git bloats the repository permanently. Every clone downloads every version of every binary file ever committed.

Forgetting to lock binary files: Two people editing the same .umap file simultaneously guarantees one person loses their work.

Committing generated files: Binaries/, Intermediate/, Saved/, and DerivedDataCache/ should never be committed. They're generated from source and waste storage.

Infrequent commits: Commit small, focused changes frequently. Large, infrequent commits are harder to review, harder to revert, and more likely to conflict.

No commit messages: "Fixed stuff" tells nobody anything. Write messages that explain why you made the change, not just what you changed.

Version control is the foundation of professional game development. Choose the right tool for your team size, set it up properly, and commit to using it consistently. Your future self (and your teammates) will be grateful.

Tags

Unreal EngineVersion ControlGitPerforceTeam Workflow

Continue Reading

tutorial

World Partition Deep Dive: Streaming, Data Layers, and HLOD for Massive Open Worlds

Read more
tutorial

Motion Matching and Control Rig in UE5: The Future of Character Animation

Read more
tutorial

CI/CD Build Pipelines for UE5: Unreal Horde, GitHub Actions, and Jenkins

Read more
All posts