Unreal Engine 4 Git Source Control Plugin
UE4GitPlugin is a simple Git Source Control Plugin for Unreal Engine 4.5
Beta version 0.5.3:
- display status icons to show modified/added/deleted/untracked files
- show history of a file
- diff against depot or between previous versions of a file
- revert modifications of a file
- add a file
- delete a file
- checkin/commit a file (cannot handle atomically more than 20 files)
- show current branch name in status text
What cannot be done presently:
- initialize a new Git local repository ('git init') to manager your UE4 Game Project.
- configure user name & email ('git config user.name' & git config user.email')
- commit description message cannot take more than one line (Editor limitation)
- Pull/Fetch/Push are not in the current Editor workflow
- Branch and Merge are not in the current Editor workflow (but on Epic Roadmap)
- Amend a commit & Add file to Index are not in the current Editor workflow
- issue #10: Add the "Copy" operation replacing "Delete" + "Add"
- issue #11: Add the "Resolve" operation introduced in Editor 4.3
- reverting an asset does not seem to update content in Editor! Issue in Editor?
- renaming an asset does not seem to be handled correctly by the Editor...
- renamed file may not be tracked correctly (not yet tested, see above)
- file history does not report file size
- Windows only (64 bits)
Under Windows 64bits, you could either:
- install a standalone Git, usually in "C:\Program Files (x86)\Git\bin\git.exe".
- or copy a portable Git inside "/Engine/Binaries/ThirdParty/git/Win32".
Initialize your Game Project directory with Git
Use your favorite Git program to initialize and manage your whole game project directory. For instance:
Install this Git Plugin
There are a few ways to use a Plugin with UE4.
See also the Plugins official Documentation
Within a standard installed Unreal Engine binary release:
You can simply download a ZIP of source code from the latest release, and unzip it under the "Plugins" directory of the Engine, beside PerforceSourceControl and SubversionSourceControl:
Or you can clone the plugin repository, and as the name of the destination directory is unimportant, its just:
git clone https://github.com/SRombauts/UE4GitPlugin.git
Within an Unreal Engine source release from GitHub:
Donwload and unzip or clone the plugin repository under the "Plugins" directory of the Engine, beside PerforceSourceControl and SubversionSourceControl:
Take care of using the name GitSourceControl as destination directory (same name as the "GitSourceControl.uplugin" file):
git clone https://github.com/SRombauts/UE4GitPlugin.git GitSourceControl
Within your Game Project only
Alternatively, you could choose to install the plugin into a subfolder or your Game Project "Plugins" directory:
In this case, you will obviously only be able to use the plugin within this project.
Enable Git Plugin within the Editor
Launch the UE4 Editor, then open:
Windows->Plugins, enable Editor->Source Control->Git
click Enable and restart the Editor.
Activate Git Source Control for your Game Project
Load your Game Project, then open:
File->Connect To Source Control... -> Git: Accept Settings
See also the Source Control official Documentation
Copyright (c) 2014 Sébastien Rombauts (email@example.com)
Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt or copy at http://opensource.org/licenses/MIT)
How to contribute
The most efficient way to help and contribute to this wrapper project is to use the tools provided by GitHub:
- please fill bug reports and feature requests here: https://github.com/SRombauts/UE4GitPlugin/issues
- fork the repository, make some small changes and submit them with independant pull-request
You can also email me directly, I will answer any questions and requests.
Coding Style Guidelines
The source code follow the UnreaEngine official Coding Standard :
- CamelCase naming convention, with a prefix letter to differentiate classes ('F'), interfaces ('I'), templates ('T')
- files (.cpp/.h) are named like the class they contains
- Doxygen comments, documentation is located with declaration, on headers
- Use portable common features of C++11 like nullptr, auto, range based for, OVERRIDE macro
- Braces on their own line
- Tabs to indent code, with a width of 4 characters