Git Workflow for Unreal Engine Teams — How to Stop Accidentally Overwriting Each Other's Work

Hey everyone :waving_hand:

I wanted to share a quick workflow guide I put together after running into a frustrating issue on my own team — artists accidentally pushing changes to maps they never even opened.


The Problem

Unreal Engine silently marks .uasset files as “modified” in the background, even when you didn’t intentionally change them. Just opening a level to look around, editing a shared material, or letting Unreal auto-save is enough to dirty a file. When someone then pushes everything without reviewing, they overwrite their teammates’ work — and nobody knows where the problem came from.

If you’ve ever heard “why is my map modified? I didn’t touch it” — this is why.


The Fix — A Simple 5-Step Workflow

  1. Pull before you open Unreal. Always.

  2. Work only on the files assigned to you. Avoid opening other people’s maps, even just to look — the moment you open a .umap, Unreal marks it modified.

  3. Before you commit, open your changes list and go through every file one by one. Ask yourself: did I actually work on this? If not, don’t include it. In GitHub Desktop, uncheck it. In Fork, leave it unstaged. In terminal, use git add with specific file paths — never git add .

  4. Write a real commit message. “Updated carpet material in Last level” is infinitely more useful than “changes” or “push.”

  5. Then push — only after you’ve reviewed everything.


Why Unreal Touches Files You Didn’t Mean To

Here are the most common reasons a file shows up modified when you didn’t touch it:

  • You opened someone else’s level → Unreal marks it modified on open

  • You edited a material used across multiple levels → those levels get flagged too

  • You accidentally moved something and undid it → Unreal still marks the file dirty

  • Unreal auto-saved or rebuilt lighting → related files get touched


Pre-Push Checklist

Before every push, run through this:

☐ Pulled before I started working ☐ Only opened files I was assigned to work on ☐ Reviewed every file in the changes list ☐ Staged only the files I actually changed ☐ Wrote a clear commit message ☐ Nothing from a teammate’s map snuck in


I wrote this up properly as a GitHub repo with full instructions for GitHub Desktop, Fork, and terminal users. Feel free to share it with your team:

https://github.com/marufx86/unreal-engine-git-workflow

Hope this saves someone a headache! Happy to answer any questions.