

# GitHub Flow branching strategy
<a name="github-flow-branching-strategy"></a>

GitHub Flow is a lightweight, branch-based workflow was developed by GitHub. GitHub Flow is based on the idea of short-lived feature branches that are merged into the main branch when the feature is complete and ready to be deployed. The key principles of GitHub Flow are:
+ **Branching is lightweight **– Developers can create feature branches for their work with just a few clicks, improving the ability to collaborate and experiment without affecting the main branch.
+ **Continuous deployment** – Changes are deployed as soon as they are merged into the main branch, which allows for rapid feedback and iteration.
+ **Merge requests** – Developers use merge requests to initiate a discussion and review process before merging their changes into the main branch.

For more information about GitHub Flow, see the following resources:
+ [Implement a GitHub Flow branching strategy for multi-account DevOps environments](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/implement-a-github-flow-branching-strategy-for-multi-account-devops-environments.html) (AWS Prescriptive Guidance)
+ [GitHub Flow Quickstart](https://docs.github.com/en/get-started/quickstart/github-flow) (GitHub documentation)
+ [Why GitHub Flow?](https://githubflow.github.io/) (GitHub Flow website)

**Topics**
+ [Visual overview of the GitHub Flow strategy](visual-overview-of-the-git-hub-flow-strategy.md)
+ [Branches in a GitHub Flow strategy](branches-in-a-git-hub-flow-strategy.md)
+ [Advantages and disadvantages of the GitHub Flow strategy](advantages-and-disadvantages-of-the-git-hub-flow-strategy.md)