Using Github for my own project doesn't work

Hi, I’m trying to use Github for my own project (not to get the UE source). While it kind of works, Unreal keeps on changing files that I didn’t change. This causes the Github desktop (windows) program to think they’re real changes.

  • Is it Unreal or Github doing this? Anyone else had this?

Also, if I try and manually discard the changes (that I didn’t change), it only works about 80% of the time.
The rest of the time it says

…even if I shut down Unreal (and restart GitHub). It even does it after a computer reboot.

ps I’m not using the built in Unreal git stuff yet.

Bump. I’ve got this problem as well.

Actually, you should probably avoid github, unless you’re willing to release your project under opensource license. You’re releasing it under opensource license, if you’re not paying money to github. Opensource means that anybody is able to make copy of your project and derivatives from it.

The issue you described could happen if you put your project into google drive folder. Google drive exists in order to murder your data under guise of working as cloud storage. It will lock files while uploading them, that can crash the editor. So, google drive generally should be closed while you work in unreal editor.

You can find who keeps file open using sysinternals process explorer and some other tools.
In case of process explorer you do that by going into Find->Find file handle or DLL and typing locked file name.

You could try (has 5gb storage)

Thanks, but I’m a teacher who has to use GitHub. So no perforce. Being opensource is fine.

I still really need a clue.
How can Unreal tournament be made using GitHub? 100’s of people all using it? There’s 12 of us and we each have a separate folder, so we don’t have to deal with merges. Every lesson it breaks. Files changing by themselves, files locking with no explanation. It’s really really frustrating and is ruining the lessons.
Someone must know what’s happening? With UT and Unreal itself on github??

Unreal Tournament is a completely different project than Unreal Engine. Yes, it is built with UE4, but it is highly customized to the point where you cannot load the project into standard UE4. They have their own github repo which is accessible by logging into github with your EPIC account credentials. ( I believe they’re still using UE 4.8, and they tend to be a version or two behind the main Engine development.

Can you provide more info on how you are using github:

  • Did you create your own “new” repository?
  • Did you clone UT or UE4 or both?
  • Are you trying to create a distinct UT repo for private development (a fork)?

If you have forked either repo, make sure your git client is not set for automatic syncing. With UT this could be chaotic due to the constant commits and revisions for a pre-alpha game.

So few things to note…

Make sure you are using a correct .gitignore

The next thing to remember is that uasset are binary files and eat up space fast (git history stores each version even in your local repo)
git-lfs is designed to address this.

Also - remember there is no “locking” if Billy changes the same map as Sara - then merging really becomes choosing either Billy’s or Sara’s changes.

Level streaming can help with this - divide up your levels and assets between people.

Perforce uses the old checkout/locking model instead. (This can be easier to avoid conflicts)

Ultimately, it is MUCH harder to work on a team with binary game assets than to work on a Source Code project. ( I think this point is often missed - e.g. git works for the Linux Kernel, why cant it work for my 5-man game project)

The reason is that the game project contains Binary assets which are interdependant and changes cant be merged as easily as text files.

Version Control for teams making games is more difficult than text based projects.

It’s nothing to do with UT or UE source. It’s our own repo. It’s a normal Unreal project though. I was just amazed that something as big as UT could be done at all in GitHub, given our troubles with a tiny project.

I set up the project specifically to avoid all conflicts. Every student only works in their own folder. So binary isn’t a problem.

100% of the problems are…

  1. It randomly thinks files are modified, that we didn’t modify.
  2. It randomly locks files (as in, the GitHub Desktop program says this), so we can’t even discard the changes we didn’t make. Even if we shut down Unreal and restart GitHub desktop.

Is the GitHub desktop program totally broken and everyone just uses the command line? Is Unreal marking files as changed for some reason? And locking them?

So, you have UE4 installed. You have a github repo with an Unreal Tournament project, consisting of files created by you/your students. Correct?

This is starting to sound like a problem on your end; whether configuration, the app, or other. If you’ve set up your own repo, EPIC doesn’t have access to arbitrarily change files; no one should, other than those you’ve explicitly defined.

Who has access permissions to the account? (See: Collaborators have quite a bit of privilege. Is it possible that some student is inadvertently causing the difficulties?

Don’t know about the Github Desktop app (I use Linux command-line). I did check their website and tbh it appears to be another click-it-and-forget-it type of app. High in user-friendly, low in usability.

Thanks for the help. The assignment is for each student to make an AI creature, so they all get put into a level and fight the player.

There’s a massive misunderstanding here :slight_smile:

For example, locally, on my actual machine, the GitHub Desktop PROGRAM (not the actual server or website) detects that LOCAL files have been modified, so in the Github program it expects me to either commit them (along with files I did actually change) or discard those changes.
This would be a minor inconvenience to manually discard each false change (no group selection!), if it wasn’t for the fact that it keeps on locking the files LOCALLY (see screenshot above). I don’t want to commit things I didn’t change, so I’m stuck.
This also happens with students local computers, before the GitHub servers come into it at all.

I cannot help you with your issue directly, but I rather recommend you going away from whatever GUI program you currently use towards making yourself comfortable with the handful command line commands git uses (see Git - Book ). On top of that command line handling I would recommend Atlassian SourceTree instead of the other Windows GUI tools for git.

I use git professionally on a daily basis and I agree with learning the command line version. If nothing else, just to test out the theory that it is the GitHub application that is the issue here. Git is a true distributed source control system and does not lock or checkout files, those concepts are just not part of git at all. I suspect you have something else locking those files. Git also does not mark files as changed if you have not changed them, since it actually uses lstat and SHA1 hashes to make those comparisons when you are checking status or committing. If git thinks a file has been changed, it really has been changed; the odds of a false positive are very low.