So recently, I have been fiddling with the engine code more and more as my game requires me to do some changes.
First, it was just the SteamOnlineLeaderboards file. Then, the SteamVR black square things. And as time goes on, it’s hard to keep up with all the modifications I have to do when I download a new engine version.
I want to use github, but I have very little experience with it. And when I try to fork a new version of the engine to my Github account, it tells me I already have a fork, but no clue how to update that fork.
There is also no way to share my engine version with my dev buddy, so he can be up to date with my changes and do some art and UI design himself while I do other stuff for the game.
I just download as a zip and the go through a txt file that I made that list the changes I have to implement. And if my drive dies, bye engine, and I’d have to redownload the engine and re do the changes.
So the concepts of using Git as a version control system are quite complex. The process for keeping your fork of the actual UnrealEngine repository up to date will make sense once you are comfortable with most Git concepts. In the short term though you can look at the help pages of github itself. Specifically this page has the information you are after.
It is important to remember you have to push the updates you take from Epic’s UnrealEngine repository to your own repository as noted at the bottom of that page.
Hopefully the changes you are making to the engine are stored on a your own separately named feature branch so that you can apply the Git concept of branch rebasing to adapt your changes to those changes others have contributed to Epic’s UnrealEngine repository. If any of the concepts that the github page mentions don’t make sense to you then you really should invest time in completely reading this excellent book on using Git.
Briefly and at a high level:
You should think of Epic’s repository as a central repository called ‘upstream’. Your github version ‘A’ is a fork(copy) of it. You don’t retrieve Epic’s changes in github itself. you clone your ‘A’ to ‘Alocal’ in which you work that knows about both ‘upstream’ and ‘A’. In ‘Alocal’ you will have private branches with your code changes that ‘A’ possibly knows about to prevent loosing work. You fetch and merge changes from ‘upstream’ branches (master, release, etc…) into matching branches in ‘Alocal’ and then push those updated branches to your ‘A’.
Contributing changes you have made back into Epic’s UnrealEngine repository ‘upstream’ is done by requesting that they pull a branch from your fork ‘A’ into their own. You can’t push your changes to ‘upstream’ directly.
Good luck with learning the concepts around Git. Hopefully that helps others reading this post for guidance.
Later
Also don’t try to merge unreal engine from the command line, you really need a good tool for that (like smartgit or tower or whatever) so you can handle all the conflicts easily.