GitHub Flow is a lightweight, branch-based workflow that supports teams and projects where deployments are made regularly:
At GitHub, we consider the GitHub Flow to be an ideal to strive for in any software development team. It does have some prerequisites: automated testing, continuous integration, and the ability to deploy feature branches.
With GitHub Flow, your developers create focused and short-lived feature branches from master, discuss implementation in pull requests, test their feature branches automatically, and merge only after the feature has been deployed to staging or production environments.
GitHub Flow helps your teams avoid merge conflicts and makes your project history easier to understand. These tightly focused and short-lived branches also make code review faster and easier. It's our experience that the laborious, process-heavy code review that some other tools quietly encourage is often a result of overly-large feature branches.
Additional resources:
- Our interactive GitHub Flow guide [PDF]
- Scott Chacon's GitHub Flow blog post
- 📺 Effective GitHubbing: The GitHub Flow
In the participants
directory in this repository, we'll be creating a new Markdown (*.md
) file with your first name or GitHub username, e.g.: nathos.md
.
As you follow along in the workshop, we'll show you how to do this in a new Git branch, then merge the proposed changes back into master
via a pull request.