Newb question: Git in UE4

Hey guys I’m sorry if this is the wrong place. I couldn’t find a help request section of the forum so hoping it’s ok to ask here. I’m a web developer that’s trying their hand at making a game. I’ve set up git and that’s all good but the way it seems to work in UE4 vs web is a little different. When we’re making changes it seems like everything is contained in the Content/FirstPersonBP/Maps/FirstPersonExampleMap.umap and *Content/FirstPersonBP/Maps/FirstPersonExampleMap_BuiltData.uasset *files so merging our two changes together seems impossible because they’re both binaries? I’m really confused about how this works and is it maybe because we’re using blueprints to build our game?

I’ve googled this loads and nearly given up on the project because I can’t get it to work. When Googling “UE4 git” all that comes up is stuff about configuring it nothing about how to actually use it. If anyone has good resources about HOW to use git or any source control with UE4 rather than how to set it up that would be fantastic. Sorry for asking such a fundamental question here.

Hope you’re having a great day,

The diff/merge capability built into the Git plugin in the editor is pretty usable for blueprints, but I believe it’s impossible to diff/merge Map/BuildData files.

IMHO a visual map diff/merge tool in-editor would be impressive, but a monumental undertaking… imagine being able to overlay or toggle back and forth between two versions of a map, and cherry pick edits from each to retain layout/settings from each for your final merged version :wink:

If you and your collaborators are at least working on different parts of the map, would it be feasible to use World Composition:

Then each user could focus on their respective sublevel (which are each stored as separate .umap files)…

On the bright side, I seem to vaguely recall something related to map collaboration (making it easier) being mentioned in discussion of UE5, but I can’t recall details.

Good luck!

Interesting. I didn’t know about such features. I thought it’s just a simple wrapper around the git-cli.
Thanks for sharing.
Is it work with Materials too?

For the original author:

Yeah! Most of the stuff in the UE4 is binary. So, there’s very little help Git can do for you. So, when there’s a merge conflict. You have to manually re-create the file (by selecting one of those versions).

You can use C++, instead of Blueprints. But again, it causes other sorts of issues(or complexities) as well.

I’m afraid Unreal editor’s visual diff/merge for blueprint graphs doesn’t work the same for material graphs…

Additionally, I just use Git for solo versioning (with Git LFS for large binary files), so I don’t have to deal with merge conflicts. But apparently Epic use internally (and recommend) Perforce for 3rd party Unreal Engine game dev teams, and it looks like there’s a free version for small teams if you want to give that a shot: