Architecture

The "architecture" of the production repository is comprised of several branches, each of which serve a different purpose.

master

This is the branch that exists on the production version of the game.
When a commit is made to this branch several automated processes begin to deploy the most recent changes to our live servers.
Commits should only be made to master when a pull request is accepted and subsequently merged in.

dev

This branch is used for working on our codebase. There is a "staging" environment that runs the code for this separate from the production servers.
Code on dev might contain bugs that need to be fixed before they get merged into master.
New code is merged from dev into master via a pull request. This pull request runs some automated tests and security scans before it can be accepted and merged into master.

feature-branch

Feature branches are created from the dev branch. This means that when you run git branch feature-name, you should have the dev branch checked out already.
These branches are merged into dev via a pull requeust.