Giter Club home page Giter Club logo

thirty-minutes-to-merge's Introduction

Welcome to Thirty Minutes to Merge

A project based learning activity for people who are getting started with branching with Git.

You can play the game at: https://githubschool.github.io/thirty-minutes-to-merge/

SUPPORTED BROWSERS: Chrome, Firefox, Safari, Opera and IE9+

This fun open source game was cloned from: https://github.com/jakesgordon/javascript-tetris

Slide Deck: Branching Strategies.pdf

Initial Repo Setup (Student)

Enable GitHub Pages in Repository Settings:

  1. Click the "Settings" tab in the repository navigation menu
  2. Scroll down to the heading that reads "GitHub Pages"
  3. Click the button that says "None" to select which branch you would like to serve your GitHub page from. For this demo, choose "main".
  4. Click "Save" button to save this setting.
  5. Once saved, you will be provded with a URL where your GitHub Page is being hosted.

Enable GitHub Actions:

  1. Click the "Actions" tab in the repository navigation menu
  2. Click the large green button that reads "I understand my workflows, go ahead and enable them"

GitHub Flow

GitHub Flow Graphic github_flow image

Choose a branching strategy that works for you, here are some things to consider about GitHub Flow:

  • Simple and easy to manage
  • Fast and light weight - "deploy early, deploy often"
  • Works well with CI/CD strategies
  • Good for continuous release
  • Doesn't support multiple versions

Hands on activity

:octocat: Oh no! The link in our README file isn't correct. Let's use the GitHub Flow to correct our README file.

  • TODO - Fix the URL in the README.md file.
  1. Create a branch
  2. Edit the README.md file and fix the URL. Save and commit your changes.
  3. Open a Pull Request - add some information about the chages you are proposing. Let the collaboration begin!
  4. Merge your approved changes into the main branch.
  5. ๐ŸŽ‰ Celebrate! You just completed the GitHub Flow. ๐ŸŽ‰

Git Flow

git_flow image

Choose a branching strategy that works for you, here are some things to consider about Git Flow:

  • Works well in slow development/deployment flow
  • Better suited for longer development cycles and a more structured development process
  • Works well if you need to maintain multiple versions in production
  • Good for planned releases
  • Slower, more methodical process
  • "Heavy-weight" - more overhead

Hands on activity

  1. Create a feature branch from the main branch named feature-changespeed
  2. On line 78 of the index.html file, alter the start and min values.
  3. Create a feature branch from the main branch named feature-changecolor
  4. On lines 116 through 122 of the index.html file, alter the colorvalues to any color you like.
  5. Create a pull request from each feature branch into the develop branch.
  6. Review and approve each Pull Request and merge the new feature into the develop branch
  7. Time to go to production! Now open a pull request from the develop branch into the main branch.
  8. Time for final review and approval, then promote the develop branch to production - merge develop into production.

While following along, if you don't want to create the branches and make modifications to the files in the repository you can use the following branches when we discuss a Git Flow workflow:

  • ex-changespeed
  • ex-changecolor

thirty-minutes-to-merge's People

Contributors

aaugustine avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.