[Twitch] Support Stream – GitHub Basics – Nov. 18th, 2014

In our next stream, we’ll provide insights into all of the GitHub options that are available to UE4 developers.


Our topics include: accessing GitHub, setting up UE4, pulling and merging, pull requests, forking a repository, and more.


Tuesday, November 18th @ 2PM EST [Countdown]](



Sean Palomino – Developer Support Manager

Ben Marsh – Sr. Programmer

Feel free to ask any questions on the topic in the thread below, and remember: While we try to give attention to all inquiries, it’s not always possible to answer everyone’s questions as they come up. This is especially true for off-topic requests, as it’s rather likely that we don’t have the appropriate person around to answer. Thanks for understanding!

Edit: The archive is now available here](

I have one question. I havn’t ever used git to follow a large codebase, and since the beginning I feel that I might do it wrong.

I cloned UE4 on github to my github. I cloned that to my computer and added the Epics clone as ‘upstream’.

Now I pull from upstream (Epics github), and push to origin (my github clone) to have them sync. The history is polluted with commits documenting those actions, and the history is spaghetty lines caused by it. Is that wrong? Do those extra commits do any harm?

When I tried to find out about it on google I read an argument about pulling vs rebasing. But I didn’t follow along.

Totally fine if its answered in the thread instead of the stream.

Hey, nice timing! A friend and I literally just started talking about using Git Hub for source control today. :slight_smile:

I guess my question would be, what are the advantages to using Github over Perforce and the other method listed in the editor?

I’d love to see a best practices for distributing a custom build internally so that tools work correctly. Specifically, I’d like to see answers for the following:

  1. What files from the engine should be distributed so that artists/designers can just run the editor for a project without it wanting to trigger a rebuild (for the runtime binaries, as well as the editor). Basically, if you are not an programmer, you should be able to pull down a directory from P4 and just run as though you installed it from the launcher.

  2. How would you integrate your custom build with the launcher? There was some info from several versions ago (keep engine build relative to launcher install, use version selector on build, etc), but it seems to no longer function as expected. The compiled engine never seems to show up in the launcher. It isn’t a huge issue, but since demos and content still require the launcher to interact with, it’d be nice if the integration was smooth.

It would be nice if there were a path to making the custom builds behave like the distributed (“Rocket”?) builds, in a manner that is maintainable (and unlikely to break in between major versions).


Here is the “.gitignore” file I use in my projects. This may help someone using git with their projects outside the UE4 engine git clone.

# Ignore project files in the root

# Derived data cache is never checked in

# Engine intermediates

# Ignore binary files...

# Ignore any saved local files

# Ignore backup files

So, since my question wasn’t answered in the stream, and it was asked that we do the questions in Answerhub, I’d like to point out that my question has actually been in Answerhub for a while: Deploying source-built engine (through P4) - UE4 AnswerHub

Answerhub always seems very hit or miss, which really is to be expected: the volume of questions relative to the number of experts and the amount of time they have to spend on questions; not to mention the timing of when the questions were posted to when the relevant SME was actually browsing Answerhub! This question probably isn’t a quick answer anyway, so it’d be nice if there were some official documentation on the subject. Or perhaps it isn’t supported?

Hey RPotter, I see this one actually has a dev assigned to it, but he’s a bit overwhelmed right now, so you wouldn’t be getting an answer in a timely manner. So I went ahead and reassigned it to someone who is more able to help you right now.