## Code workflow

We follow the Gitflow Workflow outlined here:
https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow

TL;DR

We always work in branches off of the ***develop*** branch and each feature is a new branch.

We pull and push only to the ***develop*** branch.

The ***master*** branch is only for team leads to merge a working ***develop*** branch into ***master***

There are more fancy things you can do, like hot fixes, etc., but read the article above.

### Pull and Merge Requests

* We push branches to GL and make a pull request at first commit. 
* Use the **WIP:** tag in the branch title to prevent immature merges. 
* Once a feature is ready for code review, assign the pull request to the reviewer.

* Only after passing code review can the pull request be merged. The **reviewer** approves the merge request.
* **Reviewer** approves merge request with a comment: MERGE APPROVED [DATE/TIME]
* Merge requests are merged by the person, who opened the pull request (author).
* If there are code conflicts, they would need to be resolved by the author and a second code review should be triggered if it is a large conflict otherwise the request can be merged to the ***develop*** branch.
* ***develop*** branch should be pulled and 'tested' at this point
