What does "Submit to Source Control" add to version control?

I am experimenting with the “source control” feature and I do not understand what it actually does. I have tested it with both the SVN and Git plugins and I have read this document. It doesn’t seem to work with most files.

After “connecting to source control”, I can “submit to source control” and this automatically lists certain files. The files it lists get added to the svn/git repo and committed. It seems to add/commit these files:

  • uproject files
  • map files
  • map “BuiltData.uasset” files

However, in my tests, these files are not added:

  • Blueprint files
  • C++ files created with “Add New->C++ File” or add component “New C++ component”.

It seems that if I use source control through the “source control” button in the editor, critical files will be left out.

Is the feature supposed to work this way, or is something wrong? And if this is how the feature is supposed to work, then what is the point of the feature (since I apparently need to be doing additional operations with the command line vcs tool in order to preserve all Unreal-created files)? I had hoped that by using the builtin “Source Control” it would automatically add for me the files that were important and leave out the files that were not (like temporary files or the Visual Studio files). I do see that there are “answers” on this site describing how to configure a gitignore, but that seems error-prone and if possible I’d prefer Unreal to manage this for me.


I am the author of the Git plugin. Source Control in UE4 Editor is managing all what the Editor is directly managing, which in is:

  1. The uproject file
  2. The Config/ director’s in files
  3. The Content/ directory’s umap and uasset files

So this exclude Sources/ and Plugins folder, as well as any other files you would add by yourself like pictures, movies or documents…

Thank you, that’s helpful!

It seems to me Unreal’s feature would be more useful if in addition to those files, it was able to “manage” or notify version control of files which the project tracks as used content, like files built by its build system or blueprints used in components (or maybe just any such file the project created itself). This is of course out of the scope of your plugin! But, do you think, if I sent a feature request to Unreal asking them to expand the scope of the files tracked by the “standard” unreal source control feature, they would listen? What would be the appropriate way to request that?

(I am very new to unreal)

Just to reiterate: all Blueprint are tracked, since they are in the Content/ folder!

Build artifacts should most often not be tracked by the build system, since they can be rebuild. For this reason, Intermediate/ and Binaires/ folder are should be ignored.

But yes, C++ classes should also be tracked, but I think C++ developers don’t like to use in-engine source control.

And yes, you could ask Epic Games, I would love to push in this direction too!