Git process for including UE4 plugins in a project

I’m searching for a process for using version control to handle plugins properly inside a project.

  • Plugins have binaries associated with them, and binaries are typically not tracked by git (they would be ignored as per the .gitignore file):

GitIgnore file section about Binary Files

Binaries/*
Plugins//Binaries/

  • larger files, or other assets that do not need to tracked with diffs are managed by LFS

I would think theoretically Plugin Binaries should be tracked with LFS.

And the reason I’m mentioning it is the project will not open properly if the plugin is enabled. It will complain that the plugin is not compatible with the engine version (which isn’t true).

If this is true and technically I should track plugin binaries with LFS what should my .gitattributes file have in it?

Thanks!

The binaries(plugin and game) can be built by other developers - they are redundant and do not need to be checked in. That is why they are in the .gitignore.

If you have artists or other users without Visual Studio, you will need to add the binaries.
But if you have multiple people, you should probably use Perforce instead. (Because of the locking)

If you are solo, then just exclude the binaries and build them as needed.

Yes I understand how the game binaries are built via compilation – but in this case I’m specifically talking about the plugins. When you install a plugin from the asset store does it download binaries as part of that process? And thus does that mean that some plugin binaries can not be built? And that they should be tracked in git differently? In a process such as including them with as LFS type files with gitattributes?

Plugin binaries from Marketplace aren’t installed to your project; they’re installed to the engine.

If you use them as engine plugins as [USER=“434”]BrUnO XaVIeR[/USER] said, you can just ignore them altogether.

If you use them as game plugins then use the same approach as game code and binaries…

e.g. Plugins include sourcecode. Make sure to check that in.

The approach you use for plugin binaries is the same as game binaries above.