Create a release based workflow

Learn and practice a release-based workflow and explore branching strategies.

Start free course Join 6609 others!

social preview

When your team uses a release-based workflow, GitHub makes it easy to collaborate on your next big idea.

GitHub releases allow your team to package and provide software to your users based on a specific point in the history of your project. In this course, you'll learn how to create a release-based workflow that is built on the foundations of the GitHub flow.

What you'll learn

This course will answer common questions like:

  • How do I choose a branching strategy?
  • When should I use topic branches?
  • When should I use release branches?
  • How do I use the Projects tab on my repository?
  • How do I create a release-centered workflow?
  • How do I backport changes for a prior release?
  • How do I implement a hotfix?

After completing this course, you'll be able to:

  • Build a project board to manage your next release
  • Create and commit changes on a release branch
  • Create a Git tag and a release on GitHub
  • Resolve bugs after a release
  • Automate and better document your release changes

What you'll build

GIF showing the deployed alien invasion game, the releases page showing various releases, and the Projects tab showing a completed card


We recommend you first complete the following courses:

Projects used

This course makes use of the following open source projects. Consider exploring these repos and maybe even making contributions!


Developers, DevOps Engineers, IT Operations, managers, teams

Steps to complete this course 14
  1. Create a beta release

    Create a beta release, or a pre-release, from the existing codebase.

  2. Create a project board

    Prepare for the next release using GitHub Projects.

  3. Triage issues in a project

    Add an issue to a project column.

  4. Add a new feature on the release branch

    Update the and open a pull request.

  5. Merge the new feature to the release branch

    Merge the pull request to update the release branch.

  6. Open a release pull request

    Create a pull request to bring the new feature into main.

  7. Approve changes for the next release

    Approve pull request changes for an upcoming release.

  8. Install and configure a GitHub app

    Use the Release Drafter GitHub app to help with release notes.

  9. Merge the config for Release Drafter

    Merge the configuration file for Release Drafter to set a template for the release.

  10. Merge the release branch

    Merge the release branch into main.

  11. Finalize the release

    Complete the release by publishing the drafted release.

  12. Approve a hotfix pull request

    Submit a hotfix to a previous release.

  13. Approve the backport pull request

    Backport the patch commits to the release branch.

  14. Create release v1.0.1

    Create a patch release based on the most recent commit on the release branch.

Protected branches
Semantic versioning
GitHub Apps
Share this course
Average time to complete

66 minutes


All public courses on Learning Lab are free.

Latest release

Learning Paths that include this course

Users who took this course also took

What is GitHub Learning Lab?

Learn new skills by completing fun, realistic projects in your very own GitHub repository.

Ready to start learning?

Start Create a release based workflow