Git Source control questions using sourcetree

I have been using git with sourcetree on windows for a few months now and had some questions that i figured would be better asked here than yahoo answers. I am using git with sourcetree for my project, so my first question is this:

  1. How many branches do you normally have? I currently have 4, Master, Development, Working(for uploading builds in progress) and Release. Should I have more branches? I only have 1 other person helping me, but what if i had like 4 or 5? do they all have their own branches? What if they edit the same files and push to the same branch? whos files get overwritten?

  2. I usually push to the working branch once in a while while im in an active editing session, then when i’m done with all the changes i want I merge to Development, and when the game gets to a milestone I merge to Master, is this a good workflow?

Sorry for bringing bad news but stock git really wont work well for UE projects. (The repo size will grow too fast with lots of assets and changes)

The big issue with git has to do with versioning binary assets. By default, every binary change is stored as a full file - not the delta. This is a pretty big problem - since every uasset is binary. There are git-lfs approaches that attempt to address this by storing text pointers in the repo to offline storage. AFAIK they have improved over time - I think I saw a new one on marketplace:

Because of this, most game studios use Perforce. There is a free versions (5 users / 20 workspaces). And Epic has built in editor support for it. Good Luck!

Sure, my game is only 2d though, excluding intermediate, saved and .git folders it’s only 243 mb, and by the time were done wont be over 500 mb, and i’m being pretty generous with that number, so it’s not that big of an issue. If i was working on a 3d game then yeah I would def seek a better option or just use git LFS. I always do commits/pushes through Sourcetree, I dont have UE4 hooked up to source control, I tried it but i didnt see an option to lock files for editing, not sure if git doesnt have that or what but i remember subversion did back when i was working on House of Demons with a team of like 4 or 5 people.

I second OptimisticMonkey’s recommendation. Take the time to learn Perforce.

I’d love to, but I dont have a server and I dont want to pay for one though, thats why I use bitbucket. I downloaded the perfoce helix core but it asks me for a remote or personal server.

Yeah there is no completely free hosted perforce.
If you are working solo you could just host on your own machine - but there is risk in that approach.

Back to your question - Branching model really becomes more of issue on larger teams with multiple features in flight or with development concurrent with a released game in production…

So I would follow whatever you are comfortable with. :slight_smile:

Keep an eye on your repo size - lots of changes to .uassets grows surprisingly fast

Good Luck…

Thanks for the reply! I actually found this: Helix TeamHub Pricing and Plans | Perforce That seems doable, It’s just me and a programmer, and it wont grow on this project so i’ll try that, thanks!