Why the Branches
What's with the Branches Anyways[edit]
TL;DR We use the branches to protect the Master, or the Main branch and keep us from stomping on each others toes.
In practice the Main branch should never, never be edited directly once it's become somewhat stable. Keeping the Main branch safe means it's always in a functional state that can be deployed into a live environment without error.
To help protect the Main branch, we have the dev branch, this branch is where our changes and additions officially meet so functionality can be tested to ensure a tweak somewhere doesn't break the whole build, this branch is something like a "nightly build". Between the main an dev branch we may have a release branch.
When contributing to the project, changes should be made in your own local branch, this is done with the following command. The branch that results from this will be based on the branch you're currently in. The name should be short and sweet, no spaces, and explain the containing changes, normally the associated Jira or Gitlab ticket/issue number would be the branch name.
git checkout -b <branch-name>
Doing this allows everyone to work at the same time and keeps our hard work safe from accidents and error.
How to get changes merged into Dev and Main[edit]
We eventually want to merge our changes upstream for permanent change to the code base, to do this you'll submit a merge request in GitLab (can be done via CLI as well) along with a description of all the changes made, or associated tickets. Once requested, a second person will review the changes; gitlab makes viewing the changes extremely easy. Once reviewed and tested the merge request can be approved. Note if something needs a tweak, gitlab allows you to highlight the section for review until the requester resolves your comments and issues with the merge.